さまざまなサイズの画像のフォルダを取り、画像の中央から切り取って600x600グリッドの正方形に切り取ってもらいたいのですが。これらのサイズに自動的にサイズ変更およびトリミングして、圧縮された.pngファイルとして出力できるプログラムはありますか?600x600より小さい画像の場合は、プログラムで画像のサイズをそのサイズに拡大します。
さまざまなサイズの画像のフォルダを取り、画像の中央から切り取って600x600グリッドの正方形に切り取ってもらいたいのですが。これらのサイズに自動的にサイズ変更およびトリミングして、圧縮された.pngファイルとして出力できるプログラムはありますか?600x600より小さい画像の場合は、プログラムで画像のサイズをそのサイズに拡大します。
回答:
ImageMagickを使用すると、Windowsコマンドウィンドウでコマンドを実行できます。Dosバッチファイルの作成に慣れている必要があります。
例については、このディスカッションの最後の投稿を参照してください:http : //www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=21112
このフォーラム投稿からの関連する例:
@echo off
cd C:\Users\user\Desktop\New\New folder
convert *.jpg -fuzz 10%% -trim -write %%02d_trim.png -scale "x1!" txt:
convert *_trim.png -crop 209x329+0+0 -fuzz 10%% -trim +repage %%02d_left.png
convert *_trim.png -crop 173x336+227+0 -fuzz 10%% -trim +repage %%02d_right.png
@pause
最初に、多くのプログラムで実行できるバッチサイズ変更が必要だと思いました。しかし、私はあなたがサイズ変更とトリミングの組み合わせをしたいと思い、コンピュータが動的に画像から600x600ピクセルを最適に切り出す方法を計算することを望んでいることに気付きました。
それは、通常、人間の判断による画像のトリミング方法であるため、「真の解決策」ではないため、特定の条件をブートストラップすることによってのみ実行できます。たとえば、アスペクト比を確認し、常に最短寸法をXにサイズ変更し、Y(中央/右/左)ピクセルをトリミングします。私があなたの発言を正しく読んだ場合、両方の次元が600以上であれば、XとYの両方の次元の中央から600ピクセルをトリミングする必要があります。また、1つの寸法が600より小さい場合にのみ600にサイズ変更しますか?
私は長い間、このような機能をプログラム "Image View Plus More"に追加したいと思っていました。機能の設定は次のようになるはずです。中央/左/右-サイズ変更:いいえ/以下/より大きい/両方
他に必要な設定はありますか?
更新:Image View Plus More 2.4へのこの機能のプログラミングが完了しました:
http://www.sequoiagrove.dk/tools.php
方法:トリミングする画像をインストールしてドラッグアンドドロップし、「すべてを新しいフォルダーに保存」し、元のファイル名を使用するようにベース名または%を指定し、次のダイアログで「自動トリミング」を選択します。 "と幅と高さのボックスに入力し、高さと幅の配置"中央 "を選択し、"小さい場合はサイズ変更 "をチェックします。
私はそれを行う方法をチュートリアルにしました:
OPの問題の解決策:http : //www.youtube.com/watch?v=wBc1s6zuDJM
プログラミングが好きなら、Python(コンピューター言語)を使用できます。優れたライブラリーは、プログラムレベルでPILを使用して、ヒストグラムのトリミング、サイズ変更、プロット、個々のピクセル値の取得などを行うことができます。したがって、フォルダ内のすべての画像を検索して操作を実行する簡単なスクリプトを簡単に記述できます。
このコードは、イメージのサイズに応じて、必要な処理を正確に実行し、毎秒数枚の画像を処理する必要があります。
#Python 2.7, PIL 1.1.7
import Image
import glob
import os
#Function to resize image, preserving aspect ratio
def resizeAspect(im, size):
w,h = im.size
aspect=min(size[0]/float(w), size[1]/float(h))
return im.resize((int(w*aspect),int(h*aspect)),Image.ANTIALIAS)
imgList=glob.glob('C:/icons/*.png') #Find all png images in a directory
for img in imgList: #Loop through all found images
im = Image.open(img) #open the image
print "resizing:",os.path.basename(img)
w,h = im.size #Get image width and height
if min(w,h)<600: #Check if either dimension is smaller then 600
im=resizeAspect(im,(600,600)) #Re-size Image
w,h = im.size #update image size
center = [int(w/2.0),int(h/2.0)] #Calculate Center
box = (center[0]-300, center[1]-300, center[0]+300, center[1]+300) #Defines a box where you want it to be cropped
croppedIm = im.crop(box) #Crop the image
#croppedIm.show() #Show the cropped image
fileName, fileExtension=os.path.splitext(img)
croppedIm.save(fileName+'_crop.png', "PNG") #Save the cropped image
プログラムレベルで作業を開始すると、空は限界です!顔を検出して顔の周りをトリミングすることも可能で、何千枚もの写真をインテリジェントにトリミングできます...
[2012年9月12日更新]
Sizzlepig.comは、これを簡単に実行できるオンラインツールです。「青写真」のサイズを600x600に設定し、すべての画像を中央に配置することができます。
「600x600より小さい画像の場合は、プログラムで画像のサイズをそのサイズに拡大してください。」画像をアップスケールするのではなく、より高品質のソースを見つけて作業することを強くお勧めします。私はそれが常に可能であるとは限らないことを知っていますが、それはアップスケールを試みるよりもはるかに高品質な出力をもたらすでしょう。
(私はsizzlepigで働いていますが、それでも素晴らしいツールです)
Irfanviewは、あなたが求めていることを実行できます。そのバッチモードには多くのオプションがあります。
ここに小さなチュートリアルリンクがあります:http : //gd.tuwien.ac.at/graphics/irfantut/batchcon.html
Irfanviewはこれを行うことができますが、設定には少し時間がかかります。
バッチ変換オプションを使用します。出力形式として「PNG」を選択します。出力フォーマットの隣にある「オプション」ボタンをクリックし、必要な圧縮を選択して、「OK」をクリックします
「詳細オプションを使用する」というボックスにチェックを入れて、「詳細」ボタンをクリックします
このウィンドウが表示されます
最短の辺600でサイズ変更を設定します。「アスペクト比を保持」と「リサンプル機能を使用」にチェックマークを付けていることを確認してください。「小さい画像は拡大しない」のチェックを外します
元の画像のサイズを大幅に縮小している場合は、「シャープ」ボックスにチェックを入れて値を追加することができます。私の要件は150x150サイズの画像であり、Photoshopから取得した画像の品質と一致させるには約20のシャープネス値が必要であることがわかりました。600x600の画像の場合、シャープ値は必要ない場合があるため、そのオプションのチェックを外すことができます。
「切り抜き」を使用する代わりに、「キャンバスサイズ」設定を使用してください-オプションにチェックマークを付けてください
キャンバスサイズオプションの横にある[設定]ボタンをクリックします。このウィンドウが表示されます
方法2を選択し、幅と高さを600に設定します。アンカーの「中央」オプションを選択します
キャンバスの色は実際には画像の境界線を追加しないため、問題ではありません
高度な画面で、もう一度「カスタム処理順序」の横のボックスにチェックを入れ、「サイズ変更」がリストの最初にあることを確認します。つまり、サイズ変更がトリミングの前に行われるようにします。
OKをクリックします
変換するファイルを選択していることを確認し、出力ディレクトリを設定して、「バッチの開始」をクリックします
Phatch(Linux、Mac、Windows)を探してください。それはまさにあなたが探しているものです:http : //photobatch.stani.be/download/index.html
http://pixresizer.software.informer.com/で利用可能な複数のオプションを持つユーティリティがあります。
これは良いソフトウェアです。良い意味で、使いやすく、作業が高速です。私は写真を撮るとき、それを使って画像をバッチで処理しています。写真をインターネットで共有するには、何度も写真のサイズを小さくする必要があります。私は他のソフトウェアも試しましたが、これは良いものだと思いました。(私はこの会社とは関係ありません。)
なぜ誰もそれを言及しないのか分かりませんが、私のお気に入りはmultipleimageresizer.netです。トリミング、フォーマットの変更、サイズの変更、テキストの追加、透かしなどを行うことができます。同時に複数の画像に。
これはリアルタイムセーバーです。お勧めします。