C 分辨率为300x300的jpeg到bmp输出失真的灰度图像
我在Ubuntu 14.04环境中使用libjpeg解压我的JPEG图像并将其写入BMP文件。但是,如果我有一个分辨率为300x300(2550x4206像素)的彩色JPEG图像,输出的BMP文件是灰度的,图像看起来很暗。其他分辨率为200x200、400x400和600x600的JPEG图像将输出正确的BMP图像。我需要你的建议。请帮忙。多谢各位 链接到JPEG图像: BMP的预览不可用。在Ubuntu或Linux环境系统中下载并查看图像。我不知道为什么它不在谷歌甚至Windows中显示图像 链接到输出BMP图像: 将解压缩的JPEG图像写入BMP文件的代码段:C 分辨率为300x300的jpeg到bmp输出失真的灰度图像,c,image,bitmap,jpeg,libjpeg,C,Image,Bitmap,Jpeg,Libjpeg,我在Ubuntu 14.04环境中使用libjpeg解压我的JPEG图像并将其写入BMP文件。但是,如果我有一个分辨率为300x300(2550x4206像素)的彩色JPEG图像,输出的BMP文件是灰度的,图像看起来很暗。其他分辨率为200x200、400x400和600x600的JPEG图像将输出正确的BMP图像。我需要你的建议。请帮忙。多谢各位 链接到JPEG图像: BMP的预览不可用。在Ubuntu或Linux环境系统中下载并查看图像。我不知道为什么它不在谷歌甚至Windows中显示图像
struct jpeg_decompress_struct cinfo;
unsigned int bytesPerRow = cinfo.output_width * cinfo.num_components;
unsigned int colColor;
FILE *bmpFile = NULL;
while (cinfo.output_scanline < cinfo.image_height) {
JSAMPROW row_pointer[1];
row_pointer[0] = raw_image
+ cinfo.output_scanline * bytesPerRow;
jpeg_read_scanlines(&cinfo, row_pointer, 1);
for (colColor = 0; colColor < cinfo.image_width; colColor++) {
/* BMP scanlines should be aligned at 4-byte boundary */
}
/* write each row to bmp file */
fwrite(row_pointer[0], 1, bytesPerRow, bmpFile);
}
我从@user3629249那里得到了答案。非常感谢。 仅当分辨率为300x300时,我才在每行末尾添加了2个字节的填充
padding = 0;
fwrite(&padding, 2, 1, bmpFile);
我从@user3629249那里得到了答案。非常感谢。 仅当分辨率为300x300时,我才在每行末尾添加了2个字节的填充
padding = 0;
fwrite(&padding, 2, 1, bmpFile);
到输出图像的链接失败,即使使用谷歌像素编辑器之一,也请重新发布图像或更正linkvoid_ptr添加的代码片段,以便将解压缩的JPEG写入BMP文件@用户3629249下载该文件并尝试在Ubuntu或Linux环境中查看该文件。我不知道为什么它不能在Google甚至Windows中显示图像:(a.bmp文件字段必须采用正确的“endian”格式。这通常意味着字段必须逐字节设置。行的宽度必须是4字节长的倍数。假设图像设置为:2550像素,24位(3字节)每像素,生成的行宽度将不是4的倍数。因此,`for(iCount-…)循环需要更智能,以允许尾部填充字符(如果有)这需要在每行的末尾是的,我逐字节设置了.bmp文件字段。我是否只在每行的末尾添加1个字节?到输出图像的链接失败,即使使用谷歌像素编辑器之一,请重新发布图像或更正linkvoid_ptr添加的代码段,以便将解压缩的JPEG写入bmp文件。@user3629249 Download文件,并尝试在Ubuntu或Linux环境中查看该文件。我不知道为什么它不在Google甚至Windows中显示该图像:(a.bmp文件字段必须采用正确的“endian”格式。这通常意味着字段必须逐字节设置。行的宽度必须是4字节长的倍数。假设图像设置为:2550像素,每像素24位(3字节),则生成的行宽度将不会是4的倍数。因此,`for(iCount-…)循环需要变得更智能,以允许需要在每行末尾的尾随填充字符(如果有)是的,我逐字节设置.bmp文件字段。我是否只在每行末尾添加1个字节?