Why must "stride" in the System.Drawing.Bitmap constructor be a multiple of 4?

Posted by Gorchestopher H on Stack Overflow See other posts from Stack Overflow or by Gorchestopher H
Published on 2010-02-02T16:56:44Z Indexed on 2010/04/16 18:23 UTC
Read the original article Hit count: 282

Filed under:
|
|

I am writing an application that requires me to take a proprietary bitmap format (an MVTec Halcon HImage) and convert it into a System.Drawing.Bitmap in C#.

The only proprietary functions given to me to help me do this involve me writing to file, except for the use of a "get pointer" function.

This function is great, it gives me a pointer to the pixel data, the width, the height, and the type of the image.

My issue is that when I create my System.Drawing.Bitmap using the constructor:

new System.Drawing.Bitmap(width, height, stride, format, scan)

I need to specify a "stride" that is a multiple of 4. This may be a problem as I am unsure what size bitmap my function will be hit with. Supposing I end up with a bitmap that is 111x111 pixels, I have no way to run this function other than adding a bogus column to my image or subtracting 3 columns.

Is there a way I can sneak around this limitation?

© Stack Overflow or respective owner

Related posts about c#

Related posts about bitmap