私がやろうとしていることの解決策を見つけるのは難しいと感じています。
簡単に言えば、これらの画像の使用法はオンラインストア用です。
Autioクロップボーダーを使用したIrfanViewバッチ処理は、基本的にクロップを分類します。処理中の画像に白/黒または均一な境界線が存在するものを切り取る必要があります。
しかし、私は画像を完全な正方形に保つ必要があります。 300x300ピクセルのように。
したがって、たとえば、トリミングされる画像のフォーカスが長い場合、上下に達するまで空白/余白がトリミングされます。次に、左右のサイズが長さに等しくなるポイントまで左右をトリミングするだけです。空白(マージン)の一部のみを削除するか、必要に応じて空白(マージン)を追加します。
imagemagick
には素晴らしいオプション-trim
があります。約1年前に-size
と一緒に4500枚の写真を使用して、空のモノクロの境界線を削除し、製品だけを残したことを覚えています。すべての画像をディレクトリa
に置き、空のディレクトリb
を作成したことを覚えています。次に、dir a
から次のようなものを使用します
for i in *; do convert-im6.q16 $i -trim -resize 300 ../b/$i; done
次に、約1時間待って、dir b
に4500枚の画像があり、モノクロの背景がトリミングされ、幅が300ピクセルになりました。 convert-im6.q16
コマンドは、convert
など、他のシステムでは少し異なる名前が付けられている場合があります。
元の画像に実際の黒または白の境界線がなく、そのような境界線の作成を避けたい場合は、Imagemagickのconvert
を使用できます。
convert in.jpg -geometry 300x300^ -gravity center -crop 300x300+0+0 out.jpg
キャレット(^
)は、画像が幅と高さの両方を埋めるようにします。
ただし、-geometry
パラメータを使用するだけでは、正方形のソースマテリアルがないと仮定すると、一方の辺が大きすぎる画像が残ります。したがって、最終的な画像解像度を得るには、中央付近をトリミングする必要があります。 +0+0
は、カットオフパーツを必要としないため、個別のファイルとして取得しないようにします。
ソース画像に実際に境界線がある場合は、-trim
の直後にin.jpg
を使用してみてください。
IrfanViewを使用して、実行可能なソリューションを実現しました。
ファイルからのバッチ変換/名前変更の使用>> [入力ファイル]ダイアログに画像を追加するだけです。
バッチ変換設定の詳細オプションを使用して、[詳細]をクリックします。
[サイズ変更]にチェックマークを付け、[新しいサイズを設定]、[1つ設定]を選択しますOR両方のサイドに。高さ/幅に同じサイズを入力します(300pxを使用します)。そのサイズのポイント。したがって、最大サイズ(画像が縦向きか横向きかによって異なります)になり、300ピクセルになります。また、アスペクト比を維持している場合は、反対側も比例して拡大縮小されます。
また、スマートクロップも実行します。IrfanViewの場合は自動クロップボーダーと呼ばれます。この設定は[サイズ変更]ダイアログの右側に表示されます。
それを完了する前に、最初にトリミングを行い、次にサイズ変更を行うことを確認する必要があります。そうしないと、最初に300pxにサイズ変更してからトリミングするため、300pxよりも小さいものになってしまいます...あなたは結果を想像することができます。
これは私の正確な質問を正確に解決しませんでしたが、最大の側面を300pxにし、サイズ変更前にスマートなトリミングを行うことができれば問題ありません。私がHTMLのCSSで達成できる残りの部分は、実際にはより良い解決策かもしれません。
透明なピクセルをトリミングしたいという点で要件が少し異なりましたが、機能的には境界線を削除するのと同じかもしれませんか?
これらの答えはどれも私にはうまくいきませんでした。バウンティを置いた後、私は検索を続け、extent
が欠けている部分であることがわかりました。
magick convert *.png -trim -background none -resize 300x300 -gravity center -extent 300x300 out/processed.png
私が理解している限り、各パラメーターの機能の内訳は次のとおりです。
-trim
:すべての透明ピクセル(左、右、上、下)をトリミングします-background none
:サイズ変更の透明性を維持します(順序は重要です!)-resize 300x300
:最大幅と高さを300にします。正方形にしません。-gravity center
:画像を中央揃えにします(必要ない場合があり、サイズ変更と範囲の両方で機能する場合があり、あまりテストしませんでした)。-extent 300x300
:canvasのサイズを変更します。これにより、再び正方形になります。これは基本的に3つのステップに相当します。