起因
某天遇到一个任务,有一个高清的logo,需要导出成各种尺寸的logo。
解决方法
主要在于缩放图片的代码,最开始我选的是Pillow
from PIL import Image
img = Image.open(frompath)
out = img.resize(size)
out.save(outpath)
但是实际使用发现效果比PS缩放效果差很多,后来发现opencv可以选择插值方式,效果会很好多。逐一测试,似乎AREA(使用像素区域关系进行重采样)在缩小这个任务上跟PS效果是最接近的。
import cv2
img = Image.open(frompath)
out = cv2.resize(img, size, interpolation=cv2.INTER_AREA)
cv2.imwrite(outpath, out)
其他几种缩放的插值方法,可以参考这篇文章: