PNG批量调整大小并保存,同时保持透明度


10

我有大约700+ png图片。我需要调整大小并保存它们。但是,我还需要保持它们的透明性。

我尝试了Irfanview,但是没有用。GIMP有效,但是找不到批量保存选项。我不会手动调整大小并保存700多个图像。太麻烦了。

是否有需要我完成工作的应用程序?


您是否尝试过ImageMagick?
slhck

不,但是不是服务器吗?
脾气暴躁的小熊

1
对于服务器,您是什么意思?它是可以在任何操作系统上运行的命令行软件。
slhck

是的,不。命令行不是我的强项。我需要一些方便的GUI。
脾气暴躁的小熊

@DonSalva,即使没有强度,也可以使用ffmpeg在2行cmd内完成操作
Jet

Answers:


10

抱歉,您将不得不使用命令行。我真的很怀疑您是否可以找到用于处理此问题的GUI程序。

您尚未指定要使用的操作系统。在Linux上,以下命令将调整当前目录中所有.png文件的大小。请注意,它将覆盖原始图像:

##  bash (Linux, OSX):
for i in *png; do convert "$i" -resize 32x32 "$i"; done
##  on Windows:
for %i in (*png); do convert %i -resize 32x32 %i; done

请注意,对于Windows行,如果在脚本中而不是在命令行中使用它,则需要使用%%i而不是%i


另一个选择是GIMP脚本。该脚本将调整图像的大小():

(define (batch-resize pattern width height)
(let* ((filelist (cadr (file-glob pattern 1))))
(while (not (null? filelist))
(let* ((filename (car filelist))
(image (car (gimp-file-load RUN-NONINTERACTIVE filename filename)))
(drawable (car (gimp-image-get-active-layer image))))
(gimp-image-scale-full image width height INTERPOLATION-CUBIC)
(gimp-file-save RUN-NONINTERACTIVE image drawable filename filename)
(gimp-image-delete image))
(set! filelist (cdr filelist)))))

将其保存为batch_resize.scmGIMP的scripts目录,然后按以下方式运行:

gimp -i -b '(batch-resize "*.JPG" 604 453)' -b '(gimp-quit 0)'

更新:

我只是偶然发现了这篇文章,暗示GIMP插件 David的Batch Processor应该完全按照您的要求进行。本文是关于Linux的,但是在插件页面上有Windows版本的链接。


不好,我总是忘记操作系统。这是Win7 64位。
脾气暴躁的小熊

好吧,ImageMagick具有Windows版本,您也应该(以某种方式)能够在Windows中使用GIMP脚本。
terdon

@DonSalva看到更新的答案。
2013年

ImageMagick是用于此类工作的出色工具。了解如何使用它,您将永远爱它!
李·哈里森

感谢@evilsoup添加了Windows命令行。
terdon


3

XNConvert具有用于这些任务的简单直观的GUI。

XnConvert是功能强大且免费的跨平台批处理图像处理器,可让您组合80多个动作。兼容500种格式。它使用XnViewMP的批处理模块

  • 批量处理
  • 保留透明性(使用透明PNG测试)
  • 自动或预定义的调整大小
  • 无需安装

在此处输入图片说明


我试过了,但并没有保持透明性(Mac版)。它会决定使用哪种重采样(我像您一样使用Lanczos)。
niico 2014年

自己解决这个问题-使用双线性重采样即可做到。您可以在“之后”窗口中看到它的外观-如果透明区域为黑色,则说明它将无法正常工作。
niico 2014年

@niico我现在尝试了3种不同的重采样方法,也就是Lanczos。它们都产生透明图像。也许MAC版本以不同的方式工作
nixda 2014年

我在PC和Mac上都尝试过-两者相同。此外-我现在注意到我进行的重采样非常烦人并且无法使用。
niico 2014年

2

默认情况下,使用FFMpeg是最快捷的方法:) 在此处
下载该文件,将其与文件一起放在文件夹中,打开命令行,转到文件夹(使用)并在其中写入: cd

mkdir Resized
for %f in (*.png) do ffmpeg -i "%~nxf" -s 32x32 "Resized\%~nxf"

32x32随您的尺寸而变化。它将调整您的PNG大小并将其放置在Resized文件夹中。
这将在没有批处理文件的情况下完成工作。但是,如果要将其放在bat文件中,请%%代替写入%

希望对您有帮助。


0

我还没有尝试过在这里提到的ImBatch或XNConvert,但是这里有一些其他建议:

  • pngquant(命令行工具。我自己,我使用了页面上包含的Windows GUI PNGoo)
  • 颜色量化器(有很多调整设置以使用各种抖动算法等的可能性。我从来没有像PNGoo / pngquant那样能像它一样工作,但这可能是由于我的知识有限)。
  • TinyPNG.com(免费的Web服务限制为20个文件,每个文件小于5MB)

0

我多次遇到相同的问题,并且大多数时候都安装了Photoshop。因此,我借鉴了其他人的代码,将此脚本放在一起。

https://gist.github.com/pixelbacon/7754cba64125b0240504

用法

  • 安装Photoshop CC或更高版本。
  • 在Photoshop中打开脚本。
  • 对话框将要求您选择源文件夹。
  • 对话框将要求您选择目标文件夹。
  • 另一个对话框将询问您最大宽度和高度。
  • 另一个对话框将询问您理想的宽度,然后理想的高度。
  • 等待脚本将打开您源文件夹中的所有PSD或AI文件,并将其另存为透明PNG-24。
  • 对话框将告诉您何时完成。

参考文献

有2个以上的参考链接,我目前的名声不允许我再发布。请参阅原始脚本,以作为参考文献。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.