我尝试使用PythonMagick从jpg图像创建缩略图:
img.quality(90)
# TODO set the sampling algo e.g. bilinear
img.sample(Geometry(scaledWid, scaledHei))
img.crop(Geometry(THUMBNAIL_WID-1, THUMBNAIL_HEI-1,cropLeft, cropTop))
img.write(destFilePath)
如何设置使用的采样算法?我相信现在它正在使用最近的邻居,这看起来很难看。
答案 0 :(得分:0)
调整大小过滤器是在调用.resize()
之前通过图像集上的属性设置的,或者,我想,.sample()
。
该属性为.filterType()
,并根据PythonMagick.FilterTypes
上的一个枚举值设置 - 与Magick++ FilterTypes
的列表相同。
(注意:从来没有PythonMagick的任何文档,但因为它基本上只是Magick++的包装器,所以只需使用API documentation。)
所以尝试(未经测试,我不使用Python):
img.quality(90)
img.filterType(PythonMagick.FilterTypes.SincFilter)
img.sample(Geometry(scaledWid, scaledHei))
img.crop(Geometry(THUMBNAIL_WID-1, THUMBNAIL_HEI-1,cropLeft, cropTop))
img.write(destFilePath)
请注意,默认过滤器通常是LanczosFilter
,或者至少它应该是,这是非常好的。