Painting animated images using C#
A short article on using the ImageAnimator class to allow animated GIF's to be properly painted using System.Drawing and C#.
Normally when I load textures in OpenGL, I have a PNG file which I load into a `System.Drawing.Bitmap` and from there I pull out the bytes and pass to `glTexImage2D`. It works, but seems a bit silly having to create the bitmap in the first place. For this reason, I was toying with the idea of creating a very simple image format so I could just read the data directly when I came across a simple format named farbfeld. This article describes a basic encoder/decoder for C# along with my own thoughts.
Although I should really be working on adding the dithering algorithms into Gif Animator, I thought it would be useful to expand the repertoire of algorithms available for use with such tools. This article briefly mentions the expanded error diffusion algorithms that are now included, and in slightly more detail covers random dithering as well.
When you reduce the number of colours in an image, it's often hard to get a 1:1 match, and so typically you can expect to see banding in an image - areas of unbroken solid colours where once multiple similar colours were present. Such banding can often ruin the look of the image, however by using dithering algorithms you can reduce such banding and greatly improve the appearance of the reduced image. This article briefly discusses dithering as a prelude to further articles with actual dithering implementations.
Article describing how to extend the ImageBox control to support displaying PDF files using the GhostScript API, removing the need for a dedicated PDF reader.
Article which describes how to use C# and GhostScript to convert PDF files into raster images for displaying in an application without requiring a dedicated PDF reader.
Fourth and final in a multi part series on creating an image viewer that can be scrolled and zoomed in C#. After part three added panning, we now add zoom support via the mouse wheel and clicking with the left or right buttons, along with some additional display properties.
Third in a multi part series on creating an image viewer that can be scrolled and zoomed in C#. After part two added scrolling support, we now extend this to support panning and keyboard scrolling.