R中不同大小的JPEG图像
我正在读取一个jpeg图像(input.jpg),在磁盘上写入相同的图像(作为output.jpg),为什么它的大小会改变。我能保留同样的尺寸吗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
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质量存储在元数据中,但它是可选的。尝试不同的设置并比较文件大小。