当我将图像文件加载到 QImage 中然后重新保存时,我是否可能会丢失数据?还是在没有任何转换/编辑的情况下无损?
2 回答
            1        
        
		
一切都取决于您所说的无损。如果图像文件格式是无损的(比如 PNG),那么磁盘->QImage->磁盘往返只能保证图像位图的持久性。不会保留非图像数据(属性等)。
如果图像格式不是无损的(例如 JPEG),那么往返实际上会降低图像的质量。
您需要考虑QImage需要做什么才能支持位图的无损往返。它不仅需要存储解码的图像位图,还需要存储源文件的内容。一旦对图像进行任何修改,就需要丢弃后者。它没有被实现,因为这将是一个过早的悲观化,可能会使QImage.
你可以自由地实现一个QImage-lookalike,它会按照你想要的方式运行。请注意,您应该正确支持写时复制语义,并且您的图像文件数据必须保存在内部QSharedData并通过QSharedDataPointer. 您需要detach在所有非常量方法中强制使用这些数据。
于 2013-12-24T22:23:57.223   回答