我有一个来自JPEG编码器的char* buffer格式的jpeg文件。假设如果我正确地将它写到文件中,它将是pic.jpg。假设我读入了来自pic.jpg的使用ifstream,并将其存储在char* buffer2中。
这两个缓冲区之间有什么区别,如果有的话?
(我问的原因是,我有一个来自jpeg解码器的char * buffer中的jpeg文件,我需要将它写入磁盘。但是在fcntl.h中使用系统file descripter和write()方法并不能正确地将其写出来...我可以打开这张照片,但很明显,颜色是不正确的。请假设图片在从解码器输出时具有有效的颜色,因为我可以直接从解码器写入磁盘,一切正常。只是我需要将它放在char* buffer中用于其他目的,并且在进一步处理之前,我需要验证buffer是否具有有效的数据。)
发布于 2013-06-13 16:31:43
您提供的描述意味着您正在正确读取Y分量(负责亮度),而没有读取UV分量(负责颜色) properly.This看起来要么没有将整个解码数据写入磁盘,要么在渲染(显示)时没有从磁盘读取整个解码数据。最好的开始是检查解码数据的大小(大小=原始jpg图像的高度*宽度)。
http://software.intel.com/sites/products/documentation/hpc/ipp/ippi/ippi_ch6/Images/ch6_image_downsampling.jpg
https://stackoverflow.com/questions/17055378
复制相似问题