你们可以帮助将JPG文件转换为2维int [] []数组吗?有一个解决方案将它转换为bytearray,但我需要它在一个int数组....
byte[] imageBytes = File.ReadAllBytes("example.jpg");
答案 0 :(得分: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();
}
}
答案 1 :(得分:2)
如果您需要为某些图像处理API提供对基础图像的原始访问权限(这很可能是您真正需要的)并且无法访问文件,请参阅How to: Use LockBits。
本文还介绍了扫描和步幅等基础知识:Using the LockBits method to access image data。