我有一个图像(它是一个 Sprite),我将它存储在一个字节数组中。
我只想提取与此字节数组中特定位置和大小相关的字节,以便创建新图像,基本上是裁剪。
我正在使用 C# 和紧凑的 cf。我可以使用获取像素并将每个值保存到一个字节数组中,然后“读取”我感兴趣的部分。我知道我可以用它LockBitmap()
来加快速度。我通常会使用Aforge
和/或Emgu
,但正如我所说,我使用的是紧凑型 cf 框架 2。
我会对任何已知的方法感兴趣。
谢谢
额外的。
按照下面的链接,我想知道这段迭代代码是否有替代方案(如缓冲区副本)?
//Iterate the selected area of the original image, and the full area of the new image
for (int i = 0; i < height; i++)
{
for (int j = 0; j < width * BPP; j += BPP)
{
int origIndex = (startX * rawOriginal.Stride) + (i * rawOriginal.Stride) + (startY * BPP) + (j);
int croppedIndex = (i * width * BPP) + (j);
//copy data: once for each channel
for (int k = 0; k < BPP; k++)
{
croppedBytes[croppedIndex + k] = origBytes[origIndex + k];
}
}
}