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.
Visit devblog.cyotek.com.
The ImageBox
control is already a versatile little control and I use it for all sorts of tasks. One of the features I recently wanted was to allow users to be able to select a source region, then adjust this as needed. The control already allows you to draw a selection region, but if you need to adjust that ... well, you can't. You can only draw a new region.
This article describes how to extend the ImageBox
to include the ability to resize the selection region. A older demonstration which shows how to drag the selection around has also been incorporated, in a more tidy fashion than the demo.
Continue Reading
The second in a two part series that describes how to load and save Adobe Photoshop colour swatch files using C#. This second article provides a full example project that will write RGB and HSL based swatch files.
Continue Reading
The first of a two part series which describes how to load and ultimately save Adobe Photoshop colour swatch files using C#. This first article describes the file format, and provides a full example project that will read RGB based swatch files.
Continue Reading
I took a break from arguing with our GIF decoder to take a quick look at the BBM format as I have a few files in that format containing colour palettes I wished to extract. When I looked into this, I found a BBM file is essentially an LBM file without any image data, so I set to work at writing a new palette serializer for reading and writing the palette files. This article describes how to read the palettes from BBM and LBM files.
Continue Reading
As another year enters its final stages, I decided I would log the primary tools I use for my developer role, should be an interesting experiment to compare with each year, if I don't get distracted by something shiny.
Continue Reading
I recently had a requirement where a user was able to perform an action externally to my application, and my application then had to detect this for processing.
I could of course just had a poller running away in the background to check, but as the requirement also needed user input, why not just wait until the user switched back to my application, then check and deal with accordingly?
This article describes how to intercept the WM_ACTIVATEAPP
message from your C# application and put it to good use.
Continue Reading
An article which describes how to add validation support to a TreeView
control that is using custom label edit functionality.
Continue Reading
An article which describes a robust yet simple way to have custom text when using the LabelEdit
functionality of a TreeView
and working around the limitations of Windows Forms using C# along with the TVM_GETEDITCONTROL
and WM_SETTEXT
messages.
Continue Reading
A quick note about Visual Studio 2013 support.
Continue Reading
This article describes a simple extension that can be used to add multiple projects at once to a Visual Studio solution.
Continue Reading