R中不同大小的JPEG图像

时间:2016-02-04 06:20:53

标签: r jpeg

我正在阅读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 

2 个答案:

答案 0 :(得分:1)

嗯,你在做什么不是读取和写回同一个文件。 readJPEG将压缩(有损)JPEG数据解码为栅格数组,writeJPEG再次对其进行编码。要获得大致相同的大小,您应该(至少)将quality参数设置为适当的值。见?writeJPEG

writeJPEG(image, target = raw(), quality = 0.7, bg = "white", color.space)

答案 1 :(得分:0)

有许多因素会影响压缩:

  1. 采样率
  2. 量化表选择
  3. 霍夫曼表(最佳或罐装)
  4. 渐进式或顺序式 如果是渐进的,扫描的细分。
  5. 包含元数据
  6. 如果您不使用与输入相同的设置进行压缩,则会得到不同的大小。

    您还可以在解压缩过程中出现可能导致轻微差异的舍入错误。