Permettez-moi de décrire mon problème:
J'ai un site où je poste des logos de société de sponsors. Une fois que j'ai reçu le logo (ou que j'ai googlé), ils sont généralement de la taille d'un rectangle - la largeur et la hauteur ne sont pas égales.
Sur mon site, une fois que vous avez téléchargé l’image du logo, vous la rognez ensuite en un carré.
Pour les logos rectangulaires, je les ouvre généralement dans GIMP, j'augmente la taille de la toile à un carré, crée un nouveau calque de la couleur d'arrière-plan et l'exporte enfin au format jpg ou png pour le site. Cela prend du temps.
Je cherche un moyen de le faire, espérons-le, avec une simple commande de terminal.
Considérez ce logo Safaricom (société de télécommunications kenyane) ci-dessous. Il est de 650px par 380px - comment puis-je le faire 650px par 650px et ensuite le centrer horizontalement à partir de la ligne de commande?
Vous pouvez utiliser la commande suivante nécessitant imagemagick
(Sudo 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
ajuste votre image pour supprimer les borduresidentify
pour trouver la cote maximale (largeur ou hauteur)convert
utilise -gravity
pour centrer le logo dans un canevas.Vous pouvez même coller cette commande dans une fonction bash de votre $HOME/.bashrc
:
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
}