我在jpeg编码器的char* buffer
中有一个JPEG文件。假设如果我把它正确写入文件它将是pic.jpg。说然后我从pic.jpg中使用ifstream
读入并将其存储在char* buffer2
中。
这两个缓冲区之间有什么区别,如果有的话?
(我问的原因是,我在jpeg解码器的char * buffer
中有jpeg文件,我需要将它写入磁盘。但是使用系统file descripter
和{{1 write()
中的方法没有正确地写出来...我可以打开图片,但很明显颜色是关闭的。请假设图片从解码器输出时有有效的颜色,因为我可以直接从解码器写入磁盘,一切都很好。只是我需要将它放在fcntl.h
中用于其他目的,我需要在进一步处理之前验证char* buffer
是否有有效数据。 )
答案 0 :(得分:0)
您给出的描述意味着您正在正确读取Y分量(负责亮度)而不是正确读取UV分量(负责颜色)。这看起来要么您没有将整个解码数据写入磁盘,要么就是在渲染(显示)时不从磁盘读取整个解码数据。最好的起点是检查解码数据的大小(大小=高度*原始jpg图像的宽度)。