2
に抽出してみましょう。私は、ヘッダなしの生のビットマップデータを含むバイトの配列を持っています。
ビットマップデータをビット奇妙ですが、私はかなりよく分からないが、幅が、私は、BMPを構築するために、次のコードを使用NPOT(二つのないパワー)ビットマップデータをバイト配列
であれば、ビットマップデータが正しく整列されていないようですこのようなビットマップデータから:
public Bitmap GetBitmap(byte[] bitmapData, int width, int height)
{
Bitmap bitmap = new Bitmap(width, height, PixelFormat.Format16bppRgb555);
Rectangle rect = new Rectangle(0, 0, bitmap.Width, bitmap.Height);
BitmapData bmpData = bitmap.LockBits(rect, ImageLockMode.ReadWrite, bitmap.PixelFormat);
unsafe
{
byte* ptr = (byte*)bmpData.Scan0;
for (int i = 0; i < bitmapData.Length; i++)
{
*ptr = bitmapData[i];
ptr++;
if (width % 2 != 0)
{
if ((i + 1) % (width * 2) == 0 && (i + 1) * 2 % width < width - 1)
{
ptr += 2;
}
}
}
}
bitmap.UnlockBits(bmpData);
return bitmap;
}
これまでのコードは正常に動作します。しかし、何らかの理由で「ビットマップの読み込み」を実装する必要があります。つまり、ビットマップのインスタンスから「奇妙な」ビットマップデータを取得する必要があります。
どうすればよいですか?