Блог веб-программиста

10Янв/101

Ресайз 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 картинок его скорее всего надо будет оставить.

Вот так. Пользуйтесь на здоровье.

Связано с категорией: linux Оставить комментарий
Комментарии (1) Пинги (0)
  1. Знаем. ImageMagic — классный пакет


Leave a comment

 

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Нет обратных ссылок на эту запись.