Another article in my C# image dithering mini-series, this time covering the Burkes error diffusion algorithm.
Blog Articles and information on C# and .NET development topics
The Cyotek Development Blog has moved - please find it at https://devblog.cyotek.com.
Although these pages remain accessible, some content may not display correctly in future as the new blog evolves.
In my previous introductory post, I briefly described the concept of dithering an image. In this article, I will describe how to dither an image in C# using the Floyd–Steinberg algorithm.
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.
For some time now, I've started moving away from monolithic and complex GUI tools in favour of more streamlined command line interfaces. While Spriter is a fairly competent product in its own right, for some jobs it is just overkill and so this simple tool (with source available) was created.
We use batch files for... well, pretty much everything. From simple files that simple optimize modified graphics, to the tendril-like files that build our software. For some time now, I've been using
cecho.exe from a CodeProject article so that I highlight errors and successes. Sadly this tool doesn't output anything if a console window isn't in use (for example from a CI server) and so I created a quick C# version for a direct replacement.
This post is a review (or possibly some long winded rambling) of the book Essential Algorithms: A Practical Approach to Computer Algorithms by Rod Stephens and published by Wiley.
ColorGrid control is a fairly useful control for selecting from a predefined list of colours. However, it can take up quite a bit of screen real estate depending on how many colours it contains. This article describes how you can host a
ColorGrid in a standard
ToolStrip control, providing access to both the
ColorGrid and the
ColorPickerDialog, with some custom painting to show the active colour on the button to round it off.
Following on from last years post, I'll list again what I'm using and seeing what (if anything) has changed.
tl;dr; - it's pretty much the same as last year
The process of obtaining a code signing certificate from StartSSL differs significantly from the process I originally went through with Comodo. This blog post serves to document how I did it for StartSSL, both as a reference for myself and for anyone else! Personally I find this approach easier than fiddling around exporting certificates from a browser, and it gives you a lot more control.
I was recently using a
ComboBox control with the
DropDownStyle set to
Simple, effectively turning into a combined text box and list box.
However, when I wanted an action to occur on double clicking an item in the list I found that the control doesn't actually offer double click support. I suppose I should have just ripped out the combo box at that point and went with dedicated controls but instead I decided to extend
ComboBox to support double clicks.