Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R中不同大小的JPEG图像_R_Jpeg - Fatal编程技术网

R中不同大小的JPEG图像

R中不同大小的JPEG图像,r,jpeg,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

我正在读取一个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 
库(jpeg)

嗯,你所做的不是读写同一个文件
readJPEG
将压缩(有损)的JPEG数据解码到光栅阵列中,
writeJPEG
再次对其进行编码。要获得大致相同的大小,您应该(至少)将
质量
参数设置为适当的值。请参见
?writeJPEG

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

影响压缩的因素有很多:

  • 抽样率
  • 量化表选择
  • 哈夫曼餐桌(最佳或罐装)
  • 进行的或连续的 如果是渐进式的,则显示扫描的细分
  • 包含元数据
  • 如果不使用与输入相同的设置进行压缩,则会得到不同的大小


    解压过程中也可能会出现舍入错误,这可能会导致细微的差异。

    有没有办法获得输入图像的质量?好吧,对于任意情况,没有正式的方法。有时JPEG质量存储在元数据中,但它是可选的。尝试不同的设置并比较文件大小。