Существует ли способ заполнить изображение его цветом фона к размеру квадратов?

Позвольте мне описать свою проблему:

У меня есть сайт, где я отправляю логотипы компании спонсоров. После того как я отправляюсь логотип (или я погуглил), они обычно находятся в прямоугольном размере - ширина и высота не равны.
На моем сайте, после того как Вы загружаете изображение логотипа, Вы затем обрезаете его к квадрату.

Для логотипов, которые являются прямоугольными, я обычно открываю их в GIMP, увеличиваю размер холста до квадрата, создаю новый слой цвета фона и наконец экспортирую его как jpg или png для сайта. Довольно трудоемкий.

Я ищу способ сделать это, надо надеяться, только с терминальной командой.

ПРИМЕР:

Считайте этот Safaricom (кенийская Телекоммуникационная компания) логотипом ниже. Это имеет 650 пкс на 380 пкс - как я могу сделать это 650 пкс на 650 пкс и затем центрировать его горизонтально из командной строки?

safaricom logo

4
задан 10 March 2015 в 16:36

1 ответ

Можно использовать следующую команду, которая требует 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 для нахождения макс. размера (ширина или высота)
  • , я добавляю, граница на 10 пкс (не стесняйтесь изменять или удалять его)
  • Наконец последнее 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
}
6
ответ дан 1 December 2019 в 09:23

Другие вопросы по тегам:

Похожие вопросы: