The project has been kind of dead for the past month as I wasn’t getting anywhere with it, so I took a few weeks off to get some perspective. I also learnt php + sql (so easy!), tried out Visual Studio 2005 beta 2 (nice but not worth me changing until it’s at least out of beta), and played a lot of gunz (awesome game).
Anyway, I’m back and I’ve decided that the interface needs to be changed. It’s just a little too… blah? and there’s something not right. I’ve already altered it a little in the cvs, but there are still some changes needed. The brightness/contrast widgets need to be a lot smaller, and the bottom part of the text page needs to be removed all together. Ideally I’d also like to get rid of the tab control, but I haven’t been able to come up with anything better.
There are also a lot of internal things that need to be changed before I can do things like batch processing, running from the command line and saving/loading conversion settings.
Nothing major, just finishing off the selection area stuff and reorganised the code a little.
- Moved all globally used variables into a separate class
Moved all resource code into a new class
Moved application Main() into it’s own class
Added right-click “Lock Selected area” to the image
Moved all remaining Windows-specific code into NativeMethods
Mouse cursor now changes when over the selection rectangle or modifiers
Added an extra semi-transparent border when the selection area is being moved
Removed modifier handles while moving the selection area
Please feel free to leave comments or email me: J (at) jmsoftware dot co dot uk. If you want to, you can use more then one word.
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!