2017-11-21 3 views
-2

基本的に、私はまったく同じ方法で修正する必要がある500以上の画像を持っています。私はこのような画像を持っていますImage input縦横いっぱいの画像をコピー、ペースト、反転するにはどうすればいいですか?

画像の左側をコピーする必要があります。正確には、サイズが645x999ピクセルの四角形を貼り付け、斜めに反転して右側に移動します。私はこれを任意のイメージエディタで手作業で行うことができましたが、私は(できればC++で)プログラムを作ることができるかどうか、あるいは私のためにこれを行うことができるコマンドを入力したいのです。私はこのImage outputを入手したいと思っています。アドバイスが大いに役立つでしょう。

ありがとうございます。

+0

低吊りフルーツから始める:既存のツールを使用してください。 https://www.gimp.org/tutorials/Basic_Batch/ – user4581301

+1

なぜこのタグが 'gnuplot'とタグ付けされているのか分かりません。これはおそらく[ImageMagick](https://www.imagemagick.org)で最もよく行われます。 – user8153

+0

私は謝罪し、私はタグを削除した、私はそれを使って画像を作ったという事実の他にタグとしてgnuplotを置く本当の理由はなかった。 –

答えて

0

以下netpbmのコマンドは、単一のファイルのためにこれを行う方法を示して

cat cwxAr.png | pngtopnm | pamcut -width 670 -height 999 | pnmtopng > il.png 
cat il.png | pngtopnm | pnmflip -tb | pnmflip -lr | pnmtopng > ir.png 
cat il.png | pngtopnm > il.pnm 
cat ir.png | pngtopnm > ir.pnm 
pnmcat -lr il.pnm ir.pnm | pnmtopng > i.png 

注 - 幅が670個のピクセルである例で与えられる出力画像を得るために、645ない

これは enter image description here

をir.png enter image description here

をil.png中間画像を生成する必要があります

とi.png最終絵

enter image description here

変数フィールド・リストを処理するファイルのリストに設定されている次のスクリプトがうまくいく一連のファイル、ためにこれを行うには、

#!/bin/bash -f 

flist=(cwxAr-0 cwxAr-1 cwxAr-2) 
outpref=(cwxAr-out) 
nout=0 
for f in ${flist[*]} ; do 
fout=`printf "%s-%4.4d.png" ${outpref} ${nout}` 
echo "Reading "${f}", writing ",${fout} 
cat ${f}.png | pngtopnm | pamcut -width 670 -height 999 | pnmtopng > il.png 
cat il.png | pngtopnm | pnmflip -tb | pnmflip -lr | pnmtopng > ir.png 
cat ir.png | pngtopnm > ir.pnm 
cat il.png | pngtopnm > il.pnm 
pnmcat -lr il.pnm ir.pnm | pnmtopng > ${fout} 
nout=$((nout +1)) 
done 
+0

どのように私は0.png、1.png、2.pngのような名前で多くの画像を変更できるように、このコマンドを変更する必要がありますか? –

+0

イメージでこれを試したところ、無効な出力があるようですが、ファイルの入力を変更する以外に何かする必要がありますか? –

+0

説明を更新して、すべての中間ファイルが.pngでpnmではないことを確認しました(これは視聴者によって問題を引き起こしている可能性があります)。また、ファイルのリストをループして出力を生成するサンプルbashスクリプトを追加しました。 –

関連する問題