bashスクリプトを使用して画像の内容を変更するには?

bashスクリプトを使用して画像の内容を変更するには?

「image.png」ファイルの上半分を白いピクセルで覆いたいとしましょう。 Bashスクリプトを使用してこれを実行できますか?

ベストアンサー1

ツールを使用してくださいnetpbm。パッケージマネージャを介してインストールできる必要があります。

pngtopnm image.png > image.pnm
halfheight=$(awk 'NR==2 { printf "%d", $2/2 }' image.pnm)
pnmcut -top "$halfheight" image.pnm | pnmpad -white -top "$halfheight" | pnmtopng > out.png
rm image.pnm
  1. PNG画像をPNM形式に変換
  2. 画像サイズはPNM画像の2行目に保存されます。印刷高さの半分(2番目のフィールド$ 2/2)を整数として使用awkし、その値を変数に保存しますhalfheight
  3. 上から高さを半分に切り、上の白い枠を使用して同じ数のピクセルで結果を埋め、出力をPNG形式に戻します。
  4. 一時ファイルをクリーンアップします。

より「シャイ」な方法で高さを計算するには、画像サイズを配列に保存してから値を計算できます。

dim=($(head -n2 image.pnm | tail -n1))
halfheight=$((${dim[1]} / 2)) 

リンク:

おすすめ記事