透明性を維持しながらPNGバッチのサイズ変更と保存


10

約700以上のpng画像があります。サイズを変更して保存する必要があります。ただし、透明性を損なわないようにする必要もあります。

Irfanviewを試しましたが、うまくいきませんでした。GIMPは機能しますが、バッチ保存オプションが見つかりません。700以上の画像を手動でサイズ変更して保存するつもりはありません。それは面倒です。

私が必要とする仕事をするアプリケーションはありますか?


ImageMagickを試しましたか?
slhck 2013年

いいえ、でもサーバーではそうではありませんか?
Grumpy ol 'Bear

1
サーバーにとって、どういう意味ですか?これは、任意のオペレーティングシステムで実行できるコマンドラインソフトウェアです。
slhck 2013年

いや、違う。コマンドラインは私の強みではありません。便利なGUIが必要です。
Grumpy ol 'Bear

@DonSalva ffmpegを使用すると、力がなくても2行以内で実行できます
Jet

回答:


10

コマンドラインを使用する必要があります。これに対処するためのGUIプログラムを見つけることができるかどうかは本当に疑わしいです。

使用しているOSが指定されていません。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's Batch Processorがあなたの望み通りのことをするべきだと示唆するこの投稿を 偶然見つけました。記事はLinuxに関するものですが、プラグインのページにWindowsバージョンへのリンクがあります。


悪いことに、私はいつもOSを忘れていました。Win7 64ビットです。
Grumpy ol 'Bear

そうですね、ImageMagickにはWindowsバージョンがあり、(どういうわけか)GIMPスクリプトをWindowsでも使用できるはずです。
terdon

@DonSalva更新された回答を参照してください。
terdon 2013年

ImageMagickは、この種の作業に最適なツールです。それを使用する方法を学び、あなたはそれを永遠に愛するでしょう!
リーハリソン

Windowsコマンドラインを追加してくれた@evilsoupに感謝します。
terdon 2013年

4

私が思うにImBatchのツールはあなたのタスクのお手伝いをすることができます。Win7 x64でうまく動作します。無料です。


IrfanViewよりもはるかに柔軟で、アルファ付きのpngをサポートする優れたツールです。ありがとうございます。
トマーシュカフカ

3

XNConvertには、これらのタスクのためのシンプルで直感的なGUIがあります。

XnConvertは強力で無料のクロスプラットフォームバッチ画像プロセッサで、80以上のアクションを組み合わせることができます。500フォーマットに対応。XnViewMPのバッチ処理モジュールを使用しています

  • バッチ処理
  • 透過性を維持します(透過PNGでテスト)
  • 自動または事前定義されたサイズ変更
  • インストールは必要ありません

ここに画像の説明を入力してください


私はこれを試しました、そしてそれ透明性(Macバージョン)を維持しませんでした。どのようなリサンプリングが使用されますか(私はランチョスを使用しました)。
niico 2014

これを自分で解決しました-バイリニアリサンプリングを使用してそれを行います。「After」ウィンドウでどのように表示されるかを確認できます。透明な領域が黒の場合、機能しないことがわかります。
niico 2014

@niico私は今、3つの異なるリサンプル方法を試しました。それらはすべて透明な画像を生成します。たぶんMACバージョンは別の方法で動作します
nixda

私はこれを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つ以上ありましたが、私の現在の評判では、これ以上投稿できません。参照が文書化されているので、元のスクリプトを参照してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.