3

你们能帮忙将 JPG 文件转换为二维 int [] [] 数组吗?!有一种将它转换为字节数组的解决方案,但我需要它在一个 int 数组中......

byte[] imageBytes = File.ReadAllBytes("example.jpg");
4

2 回答 2

3

ReadAllBytes 不会为您提供 JPEG 的像素。JPEG 是一种压缩图像类型。您需要先将其加载到 Image 类中才能解压缩。然后你可以访问图像的像素加上确定它的宽度和高度。

Bitmap image = new Bitmap("example.jpg"); 

// Loop through the image
for(x=0; x<image.Width; x++)
{
    for(y=0; y<image.Height; y++)
    {
        Color pixelColor = image1.GetPixel(x, y);
        my_int_array[x][y] = pixelColor.ToArgb();
    }
}
于 2012-06-26T10:07:26.007 回答
2

如果您需要为某些图像处理 API(这很可能是您实际需要的)提供对底层图像的原始访问,而不是对文件的访问,请参阅如何:使用 LockBits

本文还介绍了一些基础知识,例如扫描和跨步:使用 LockBits 方法访问图像数据

于 2012-06-26T10:05:37.210 回答