【发布时间】:2016-09-05 13:46:47
【问题描述】:
假设我有一个字节数组,其中包含没有标题的原始位图数据。
但是位图数据有点奇怪,我不太确定,但如果宽度为 NPOT(不是 2 的幂),位图数据似乎没有正确对齐
我使用以下代码从此类位图数据构造 bmp:
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;
}
到目前为止,代码运行良好。但是由于某些原因,我需要实现“导入位图”,这意味着我需要从位图实例中获取“奇怪”的位图数据。
我该怎么做?
【问题讨论】:
标签: c# image image-processing bitmap