New version released, adding the ability to move, and alter the size of the selected area. I’m not totally happy with how the white squares look, but it’ll do for now.
I didn’t mention 2.1, but that was just a quick bug fix, and an optimisation when you are resizing the form horizontally or vertically and the image size doesn’t change.
I should add that the bug wasn’t mine: There’s a problem with the DrawImage function in .NET which offsets the image by (-0.5, -0.5) when the image is smaller then the drawing area. A couple of hours were wasted combing through my code before I worked out what was happening. If anyone is here after googling it, a workround is to set the Graphics.PixelOffsetMode to PixelOffsetMode.Half (and then recheck the size because it goes off a little).
(There were not as many things to fix as I expected)
At last, here’s the first major version change. You can now click on the image, and drag a rectangle while holding the button down to select an area of the image to process. Clicking anywhere once will clear the selection. It’s pretty basic at the moment, but improvements will be made over the next few weeks.
If you’re wondering, that blue box is the selected area. Lots of things to fix before I release it, but it’s looking good.
Just procrastinating with little changes before I start on a big feature, so nothing major:
Moved ASCII ramp and ‘Choose Font’ button onto the text tab, with real-time updating of the text image when the ramp changes, and removed the corresponding widget.
Added Brightness/Contrast widget Minimum/Maximum properties – I really don’t know why I had added half of the code then forgot to finish it.
The new picturebox class is in, with a last minute hack to avoid a memory hogging problem by disposing of the images manually instead of waiting for the garbage collector. Which, by the way, wasn’t easy when the images might have multiple possible references to themselves. It would have been so much neater if I could have inherited Bitmap into a new class and added a counter to check if it could be disposed, but it had to be a sealed class didn’t it…
Also, I improved the conversion speed by applying the Brightness/Contrast/Greyscale matrix to the image after resizing instead of during. The whole DrawImage() with ImageAttributes thing is very slow.
Get it here as usual: http://ascgen2.sourceforge.net
My plan was to update this blog with each new major feature (which would have a major version update, ie ?.x.?) but it’s taking too long so I’ll just update this randomly. If you just want to be told when new versions are released, Sourceforge has an rss feed here: https://sourceforge.net/export/rss2_project.php?group_id=133786 (under File Releases).
There are a lot of little changes since the first release, the main one being my floating control widget things. Plus, lots of bug fixes so check it out.
I started writing a way to select an area of the image and decided that it wasn’t possible at the speed my picturebox class was updating. I’ve spent a lot of time rewriting it basically from scratch and it’s now pretty slick, so Beta 1.6 will be out in a few days after I’ve finished testing it, and the I can start implementing the area selection stuff.
This blog has been upgraded to the latest version of WordPress and comments are activated again, now with a captcha check so hopefully the spam will go away. Feel free to leave a message!