C++ C++;。从字节数组中获取RGB
我已将JPEG格式读入字符数组C++ C++;。从字节数组中获取RGB,c++,c,file,jpeg,C++,C,File,Jpeg,我已将JPEG格式读入字符数组 char* FileName = "NewI.jpg"; FILE* ImageFile = fopen(FileName, "rb"); if (!ImageFile) { return -1; } fseek(ImageFile, 0, SEEK_END); unsigned long int FileLength = ftell(ImageFile); fseek(ImageFile, 0, SEEK_SET); char* Bytes = (cha
char* FileName = "NewI.jpg";
FILE* ImageFile = fopen(FileName, "rb");
if (!ImageFile) {
return -1;
}
fseek(ImageFile, 0, SEEK_END);
unsigned long int FileLength = ftell(ImageFile);
fseek(ImageFile, 0, SEEK_SET);
char* Bytes = (char*)malloc(FileLength * sizeof(char));
fread(Bytes, FileLength, sizeof(unsigned char), ImageFile);
fclose(ImageFile);
如何获取每个像素的RGB?这太长,不适合注释,但用于注释 您面临的问题是,JPEG文件中的原始值和RGB值之间有一个漫长的步骤序列 总结一下:
除非您想进行大量开发,否则您需要使用库来执行这些步骤(如前面所建议的)。阅读JPEG需要位级编程和绝对完美。处理过程中的一位错误将完全导致解码中断。你不会,反正也不是那么容易。请记住,JPEG图像是压缩的,因此您必须首先正确解码数据。这并不是小事,这是有库的原因。你确实应该尝试一个库。查看libjpeg、FreeImage或类似的库。您也可以将jpeg文件加载到您喜爱的绘图程序中,并将其另存为bmp文件。BMP文件是未压缩的,因此提取RGB值更容易。律师模式开启:即使BMP也可能包含压缩数据。理论上…@是的,理论上。。。但大多数绘画程序都相当实用:)