2016-12-30 51 views
0

私はソースPNG画像のセットを持っており、それらの一部を使って最終的なPNG画像を組み立てたいと思っています。パーツは長方形で、目的地で重複することはありませんが、サイズは異なります。時にはそれはソース画像の全体であり、場合によってはサブセクションでもあります。何度もソースを編集して、最終イメージを再構築したいので、shとImagemagickを使ってスクリプトを作成しようとしました。ImageMagick(画像クロップ構文)を使用して他の部分から画像を組み立てる

Iこの

convert \ 
-size 512x512 null:\ 
-page +96+32 source_a.png\ 
-page +96+0 source_b.png[32x32+16+16] \ 
-background transparent\ 
-layers merge\ 
destination.png 

(単に例示のための2つのソース画像を有する)を試み Iは、source_a.pngの全てとsource_b.pngのピースをしたいです。最初はOKですが、source_b.pngに「インライン作物」構文を使用すると、私にエラーを与える:

convert: geometry does not contain image `source_b.png' @ warning/transform.c/CropImage/666. 

画像が十分な大きさである:

$ identify source_b.png 
source_b.png PNG 64x48 64x48+0+0 8-bit sRGB 3.7KB 0.000u 0:00.000 

これを行うための最善の方法は何ですか?私はImageMagick 6.9.7-0 Q16をMacOS 10.12で使用しています。

答えて

2

代替は、同じ効果を達成するために-geometry-composteを使用することがあります

convert -size 512x512 xc:white       \ 
    source_a.png    -geometry +96+32 -composite \ 
    source_b.png[32x32+16+16] -geometry +96+0 -composite \ 
    result.png 
+0

うわー!ずっときれいな解決策 – emcconville

2

PNGはインラインクロッピングからページングを保存するので、追加ページはROI範囲外になります。私はイメージングを-repageインライントリミングして、以前のページングをクリアしようとする方がシンプルになります&新しいページを設定します。

convert -size 512x512 null: \ 
     -page +96+32 source_a.png \ 
     \(source_b.png[32x32+16+16] -repage +96+0 \) \ 
     -background transparent\ 
     -layers merge\ 
     destination.png 
関連する問題