Позвольте мне описать свою проблему:
У меня есть сайт, где я отправляю логотипы компании спонсоров. После того как я отправляюсь логотип (или я погуглил), они обычно находятся в прямоугольном размере - ширина и высота не равны.
На моем сайте, после того как Вы загружаете изображение логотипа, Вы затем обрезаете его к квадрату.
Для логотипов, которые являются прямоугольными, я обычно открываю их в GIMP, увеличиваю размер холста до квадрата, создаю новый слой цвета фона и наконец экспортирую его как jpg или png для сайта. Довольно трудоемкий.
Я ищу способ сделать это, надо надеяться, только с терминальной командой.
Считайте этот Safaricom (кенийская Телекоммуникационная компания) логотипом ниже. Это имеет 650 пкс на 380 пкс - как я могу сделать это 650 пкс на 650 пкс и затем центрировать его горизонтально из командной строки?
Можно использовать следующую команду, которая требует 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
команда обрезает Ваше изображение для удаления границ identify
для нахождения макс. размера (ширина или высота) convert
использование команды -gravity
для центрирования логотипа в квадратном холсте. можно даже вставить эту команду в функцию удара в Вашем $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
}