web-dev-qa-db-ja.com

画像を背景色で正方形サイズに塗りつぶす方法はありますか?

私の問題を説明させてください:

スポンサーの会社のロゴを投稿するサイトがあります。ロゴを送信したら(またはグーグルで検索した後)、通常は長方形のサイズになります-幅と高さが等しくありません。
私のサイトで、ロゴ画像をアップロードしたら、正方形に切り抜きます。

長方形のロゴの場合、通常はGIMPでそれらを開き、キャンバスサイズを正方形に拡大し、背景色の新しいレイヤーを作成して、最終的にサイトのjpgまたはpngとしてエクスポートします。かなり時間がかかります。

できれば端末コマンドだけでそれを行う方法を探しています。

例:

以下のこのSafaricom(ケニアのテレコミュニケーション会社)のロゴを検討してください。 650x380ピクセルです-650x650ピクセルにし、コマンドラインから水平に中央揃えするにはどうすればよいですか?

safaricom logo

4
Parto

imagemagickSudo apt-get install imagemagick)を必要とする次のコマンドを使用できます。

pic="ty338.png"; convert $pic -trim $pic ; width=$(identify -format "%w" $pic); height=$(identify -format "%h" $pic); new_dim=$((width > height ? width+10 : height+10)); convert $pic -gravity center -extent "${new_dim}x${new_dim}" $pic
  • 最初のconvertコマンドは、画像をトリミングして境界線を削除します
  • 次に、identifyを使用して最大寸法(幅または高さ)を見つけます
  • 10pxの境界線を追加します(自由に変更または削除してください)
  • 最後に、最後のconvertコマンドは-gravityを使用して、正方形のキャンバスのロゴを中央に配置します。

このコマンドを$HOME/.bashrcのbash関数に貼り付けることもできます。

squarize()
{
    pic=$1
    convert $pic -trim $pic
    width=$(identify -format "%w" $pic)
    height=$(identify -format "%h" $pic)
    new_dim=$((width > height ? width+10 : height+10))
    convert $pic -gravity center -extent "${new_dim}x${new_dim}" $pic
}
6
Sylvain Pineau