我正在阅读jpeg图像(input.jpg)并在磁盘上写入相同的图像(作为output.jpg),为什么它的大小会发生变化。我可以保持相同的尺寸。
library(jpeg)
img <- readJPEG('input.jpg')
file.info('input.jpg')$size
writeJPEG(img,'output.jpg',1)
file.info('output.jpg')$size
#is different from input.jpg size
答案 0 :(得分:1)
嗯,你在做什么不是读取和写回同一个文件。 readJPEG
将压缩(有损)JPEG数据解码为栅格数组,writeJPEG
再次对其进行编码。要获得大致相同的大小,您应该(至少)将quality
参数设置为适当的值。见?writeJPEG
:
writeJPEG(image, target = raw(), quality = 0.7, bg = "white", color.space)
答案 1 :(得分:0)
有许多因素会影响压缩:
如果您不使用与输入相同的设置进行压缩,则会得到不同的大小。
您还可以在解压缩过程中出现可能导致轻微差异的舍入错误。