Tag Archives: C#

C# Snippet for Accessing Bitmap Data with Unsafe Code

Since GetPixel is slow and I keep having to access bitmap data with unsafe code, I thought it would be a nice thing to make into a snippet.

Image.Clone does not unlock the file

Turns out, copying an image using Clone really does make an exact copy. You can’t just open an image, clone it, then safely close it as you might expect, because it also copies the file lock.
Instead, copy the image in memory using Image copy = new Image(source).

Automatically Fill a ComboBox with an Enum

This is a really nice little feature.
If we have an enumerator, say:
public enum MyEnumerator { Oranges, Apples, Hedgehogs, Laptops, Budgies, Other }
Having a form with a ComboBox called comboBox1, put this in the constructor/form load etc:
this.comboBox1.DataSource = Enum.GetValues(typeof(MyEnumerator));
This fills the combobox with the values. To convert the current combobox value back into the enumerator’s value:
MyEnumerator [...]

Dragging and dropping onto a RichTextBox

One of many flaws with the RichTextBox control is its lack of support for drag/drop operations. Luckily it’s simple to add. In fact, it’s so simple you’ll wonder why they didn’t just support it out of the box.

Making sure a number is between 0 and 255

Recently while reworking the code for the Ascgen dotNET I needed to make sure that a variable is between 0 and 255 before converting it to a byte, and I needed it to be as fast as possible since it can get called several million times a second.