Была задача менять размер скопированных в буфер обмена картинок в интернете “на лету”, т.е. в памяти, и не прибегая к помощи графических редакторов.
Для этого есть утилита ImageMagick, но в Linux она не умеет работать с буфером обмена, поэтому дополнительно использовалась xclip.
Скрипты для изменения размера картинки в буфере обмена (с сохранением соотношения сторон, заданный размер устанавливается для бОльшей стороны).
В Windows:
1 |
> convert -resize <size> clipboard: clipboard: |
Создаем обертку для быстрого вызова:
1 |
> echo convert -resize %1 clipboard: clipboard: > %systemroot%\resize_clip.cmd |
В Linux:
1 2 3 4 5 6 7 8 9 10 11 |
$ nano /home/USER/resize.sh #!/bin/bash SIZE=$1 FILE="/tmp/clipboard.png" # сохраняем из буфера во временный файл xclip -selection cli -t image/png -o > $FILE # проводим нужные манипуляции convert -resize $SIZE $FILE $FILE # копируем обратно в буфер обмена xclip -selection cli -t image/png -i $FILE |
Создаем симлинк для быстрого вызова:
1 |
$ sudo ln -s /home/USER/resize.sh /usr/local/bin/resize_clip |
Использование:
1 |
$ resize_clip 150 |
В результате измененная картинка сохраняется там же в буфере.
(скрипт назвал resize_clip
для предотвращения конфликта имен с другой системной командой resize
в Linux)