【发布时间】:2019-05-23 16:14:04
【问题描述】:
我有一张6130x5548 pixels 的图像,我想重新缩放它,使最长边为32768 pixels(然后做一个具有 7 个缩放级别的图块金字塔)。我不明白vips resize 是这样的明显方式,因此我尝试了下面的行
vips resize image_in.tif img_rescaled.tif 5.345513866231648
数字5.34551 只是32768/6130 的比率,我的x axis 的比例因子。如果我想指定返回图像的确切尺寸(以像素为单位),我该怎么做?
我尝试为此目的使用vips thumbnail,我不知道这是否被推荐,但它确实有效。
vips thumbnail image_in.tif img_rescaled.tif 32768
请问这样可以吗?
这两种方法在 MB 大小方面也给出了完全不同的输出。当vips thumbnail 产生一个大小为2.8Gb 的tif 时,vips resize 调用返回一个大小为1.8Gb 的tif。
两张图像(显然)具有相同的尺寸32768x29657 pixels,相同的分辨率72dpi,但不同的bit depthvips thumbnail 的tif 具有24 bit depth,而来自vips resize16 bit depth 的图像具有24 bit depth。原图有bit depth=16。
另外,我知道vips translate 使用的算法对生成的文件大小起着重要作用。请问vips thumbnail和/或bit depth可以设置算法吗?
【问题讨论】:
-
你能解释一下为什么在金字塔之前你需要放大六倍吗?你会得到非常模糊的像素。
vipsthumbnail应该用于制作图像缩略图,因此它将大多数图像转换为 sRGB 以供 jpeg 保存。 -
我有大约 300K 点要绘制在图像上。除非你放大比 5 级更深的东西,否则你只会看到一大块标记。理想情况下,我想达到 8 级,但 7 级是一个很好的折衷方案。背景图像的质量也不是最重要的,我也可以妥协。因此,我可以使用
cubic插值而不是lanczos,这将导致文件大小略小,甚至average、nearest等在质量方面要差很多,但文件大小也小很多。跨度> -
只是为了进一步扩展我上面的评论,如果我理解得很好,除非我的图像至少是
32768 pixels (width or height),否则我无法制作 7 个缩放级别。在这种情况下,在第 7 级,一个单位将对应于 1 个像素。如果有办法拥有units per pixels = 0.5,那么扩展到16384 pixels对我来说也可以,但我认为vips不可能做到这一点
标签: image-processing vips