0

我有一个char* buffer来自 jpeg 编码器的 JPEG 文件。假设我将其正确写入文件,它将是 pic.jpg。然后说我使用 pic.jpg 读取ifstream并将其存储在char* buffer2.

如果有的话,这两个缓冲区有什么区别?

(我问的原因是,我有一个char * buffer来自 jpeg 解码器的 jpeg 文件,我需要将它写入磁盘。但是使用系统file descripterwrite()方法 infcntl.h并不能正确地写出来......我可以打开图片,但是很明显颜色不对。请假设图片从解码器输出时颜色有效,因为我可以直接从解码器写入磁盘,一切都很好。只是我需要把它放在一个char* buffer用于其他目的,我需要buffer在进一步处理之前验证是否有有效数据。)

4

1 回答 1

0

您给出的描述意味着您正在正确读取 Y 分量(负责亮度)而不是正确读取 UV 分量(负责颜色)。这看起来像是您没有将整个解码数据写入磁盘,或者您没有读取渲染(显示)时从磁盘读取的全部解码数据。最好的起点是检查解码数据的大小(大小 = 原始 jpg 图像的高度 * 宽度)。

http://software.intel.com/sites/products/documentation/hpc/ipp/ippi/ippi_ch6/Images/ch6_image_downsampling.jpg

于 2013-06-13T08:31:43.080 回答