图片尺寸 1200×900 缩小到 800×600 有办法更清晰吗?(图片查看工具 100%>75%是更清晰的)
1200×900 缩小到 800×600 或者 600×450
有什么办法, 用 python 实现吗?
原图:
1200×900 缩小到 800×600 或者 600×450
有什么办法, 用 python 实现吗?
原图:
请问你说的哪个参数, 我试过网上说的一些
请看结果
是不是需要提升 dpi
@ipwx #10 一定要图, 要插入到 word 用
@jifengg #11 你用看图软件打开, 然后 100%》 50%试试
@xiangyuecn #12 目前就是想和看图软件一样缩放就行
https :// i.v2ex.co / CS69YwBh.png
https://i.loli.net/2020/11/18/D2hibEvwmM1VLUN.png
不过 opencv 的 resize 效果还行,下面是可运行的代码:
import cv2
def main():
im = cv2.imread(‘big_image.png’)
im_resize = cv2.resize(im, (800, 600), interpolation=cv2.INTER_LANCZOS4)
write_param = [cv2.IMWRITE_PNG_COMPRESSION, 5]
cv2.imwrite(‘big-resized.png’, im_resize, write_param)
if __name__ == “__main__”:
main()
上面的 interpolation 类似 PIL 中的 resample filter,除了 cv2.INTER_LANCZOS4,还可以试试 cv2.INTER_AREA,这俩出来的效果比较接近。还有一点值得注意的是,你给的原图只有 20kb 左右,opencv 出来的图片文件大小变大了不少,应该是压缩算法导致的,上面 wirte_param 那行可以调整压缩比例,最高 9,但是压缩下来的图片还是比原图大了不少。
#!/bin/bash
DPI=”${DPI:-192}”
FROM=”$1″
DST=”$2″
BGARGS=”$3″
if [ “${FROM}” = “” ]; then
echo “pdf2png from-file [to-file]”
fi
if [ “${DST}” = “-white” ]; then
DST=””
BGARGS=”white”
fi
if [ “${DST}” = “” ]; then
DST=”${FROM/.pdf/.png}”
fi
if [ “${BGARGS}” != “” ]; then
BGARGS=”-background ${BGARGS} -alpha background -alpha remove”
fi
convert -density “${DPI}” -strip -trim “${FROM}” -quality 100 ${BGARGS} “${DST}”
img.thumbnail((long_edge_limit, long_edge_limit), Image.ANTIALIAS)
直接拿这句试了试,导出为 png 。
thumbnail 是限制长边,自动缩。长边 800 。

提供几个思路哦
原图如果不是 rgb,而是类似 gif 的 256 色 pattern,会导致颜色不足从而掉色,要先转模式。
缩图之后直接 show 一下看看。
然后再存盘,看看会不会是导出格式的问题。
一种可能是导入后格式被修改过了,还有一种可能是代码出了问题。因为他出错的图明显是 nearest 采样的,刚看了下文档,版本问题好像会影响默认值。
If omitted, it defaults to PIL.Image.ANTIALIAS. (was PIL.Image.NEAREST prior to version 2.5.0)
但是考虑到 lz 试了好几种,所以感觉可能是参数没起效果(但回退到了 nearest )。
也就是说如果 lz 的 PIL 是 2.5 以下的,可能是参数没加对。如果是新版本,那可能是图本身的问题。可以考虑在格式转换前后都打印一下颜色模式,或者 png 输出的话,强制加一步模式转换试试看。
img = img.convert(‘RGBA’)
If omitted, or if the image has mode “1” or “P”, it is set PIL.Image.NEAREST.
那就是去查图像 color mode 了。
[Image Module — Pillow (PIL Fork) 2.6.1 documentation]( https://pillow.readthedocs.io/en/3.0.0/reference/Image.html)
你看的仔细,我看到这个时候没意识到是因为图像模式问题,赞