ImageMagick:如何按整数缩放因子无平滑放大黑白图像?
解决方案:无模糊像素放大的正确ImageMagick命令
你的问题出在ImageMagick默认使用平滑插值算法(如双线性插值)进行缩放,这种算法会混合相邻像素颜色,导致出现灰色过渡、图像模糊。要实现原像素直接扩展为4×4同色块的效果,必须指定最近邻插值,让每个像素直接复制填充对应区域。
有效命令一:指定最近邻插值的resize命令
convert a.png -resize 1024x1024! -interpolate Nearest a4.png
-resize 1024x1024!:!强制输出尺寸严格为1024×1024,避免ImageMagick自动调整比例-interpolate Nearest:明确使用最近邻插值,确保原像素直接扩展,无颜色混合
有效命令二:用scale命令(默认最近邻插值)
convert a.png -scale 400% a4.png
-scale命令默认采用最近邻插值,直接按比例放大像素,不需要额外参数,操作更简洁。
为什么你之前的尝试无效
-colors 2:是在缩放完成后进行减色,但此时平滑插值已经生成了灰色像素,即使减色也会基于这些灰度生成偏灰的色块,无法还原纯黑白-dither none:仅在减色过程中禁用抖动,但你的问题根源是插值阶段的颜色混合,所以单独使用无效果-depth 1:直接设置位深会强制将现有颜色(包括插值后的灰度)转成1位,处理不当就会损坏图像结构,必须先确保缩放过程无颜色混合再设置位深
内容的提问来源于stack exchange,提问作者emacs drives me nuts
相关产品推荐
相关产品推荐

