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.
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
I’ve uploaded a new version to the Sourceforge page, and completed an initial commit to the CVS (hopefully the public CVS will update sometime today). I’ll try and sort out an installer later, but for now it’s just an exe file again.
I haven’t decided if I’ll keep this blog going or not. 😕
I’ve been messing about fixing little things and putting off releasing it for days now, and I could go on like that for ever. So I’ve decided just to go for it:
(REMOVED – newer version released)
A Sourceforge account is set up and I’ll be uploading there for future versions, but at the moment the source code isn’t quite ready to be released so I’m hosting the file here so as to not break their conditions.
No installer, no text files, just one executable to unzip and run. You need the .NET framework installed so if you don’t have it download it from the Windows Update page at Microsoft (it’s only been tested on v1.1). So, start it up, load an image, click on the text tab, maybe maximise the form, adjust the sliders a little then “File/Save as an Image…” and you’re done.
Remember: This isn’t an update of the old Ascii Generator, it’s a whole new program that looks and works differently. Many of the old features haven’t been carried over yet, and some of the more unnecessary ones will not be added. The main thing missing is the automatic ASCII ramp optimisation for the current font – at the moment it’s making do with a rough version of a ramp for Lucidia Console, which is why other fonts look a little off.
Reasons to use this over the old program:
- Text brightness, text contrast, and other effects can be altered on the Text tab in real-time. No more going back and forth clicking ‘Edit’ and trying different settings.
- The output can be resized and saved as an image automatically.
Leave comments/bugs/etc here or at the Sourceforge page.