Ресайз PNG картинок c прозрачностью в Thunar
Сегодня мне пришлось решить рутиную задачу - изменить размер PNG картинок не теряя при этом прозрачность. Искать какой либо софт было лень, поэтому решил написать bash скрипт, который всё сделает за меня.
Идея позаимствована с Crunchbang linux wiki.
Создаём папку ~/bin
и там файлик resize.sh следующего содержимого:
#! /bin/sh for file; do if [ ! -e $file ]; then continue fi toname="./"$( echo $file | cut -f1 -d.)"_"$1".png" convert -channel A -geometry $1x$1 -quality 100 $file $toname done |
Делаем его выполняемым (chmod +x ~/bin/resize.sh
), добавляем в ~/.bashrc export PATH=$PATH;~/bin
чтобы мы могли вызывать это откуда нам вздумается и в терминале выполняем source ~/.bashrc
чтобы наши изменения вступили в силу.
Теперь берём наш любимый файл-менеджер, например Thunar(стандартный в XFCE). Жмём правой кнопкой по картинкам, которые надо отресайзить, допустим до 32 пикселей, и "выбираем открыть с помощью".
Там нам надо выбрать пункт "комманда" и вписать туда: "resize.sh 32 %N
". не забудте снять галочку "Использовать эту программу для запуска файлов такого типа", а то Thunar будет запускать ресайз PNG картинок, вместо например просмоторщика картинок xfce.
Всё, теперь у нас появится файл вида старый_файл_32.png
. Причем эта команда действует даже для несколько выбранных одновременно картинок. И никакой потери прозрачности PNG!
Для JPG надо в скрипте менять расширение и убирать -channel A
, который отвечает собственно за transparency(прозрачность). Для GIF картинок его скорее всего надо будет оставить.
Вот так. Пользуйтесь на здоровье.
Понравилась статья?
Нет обратных ссылок на эту запись.
Январь 15th, 2010 - 16:34
Знаем. ImageMagic — классный пакет