19 апреля 2015 г.

ImageMagick = добавляем поля к изображениям или фото под Ubuntu

Сегодня расскажу, как можно быстро добавить поля (или границы, кому как больше нравится) к нескольким изображениям или фото. Для этого воспользуемся утилитой convert из набора ImageMagick. Это довольно распространенный пакет, найти его можно практически в любом дистрибутиве Linux.

Для установки под Ubuntu выполним команду:

sudo apt-get install imagemagick

Теперь можем приступать. Для примера возьмем вот эту картинку из википедии:
фото для манипуляций

Чтобы добавить границы к изображению, наберем в терминале:
convert -bordercolor '#00FFFF' -border 70x50 lemon.jpg lemon1.jpg
В результате получим:
добавляем границы со всех сторон

Теперь по порядку. Опцией bordercolor мы задаем цвет границ, можно указывать в формате HTML, название цвета или через директиву rgb, выглядит это вот так (результат будет идентичен):

convert -bordercolor aqua -border 70x50 lemon.jpg lemon1.jpg
convert -bordercolor '#0FF' -border 70x50 lemon.jpg lemon1.jpg
convert -bordercolor 'rgb(0, 255, 255)' -border 70x50 lemon.jpg lemon1.jpg
convert -bordercolor 'rgb(0, 100%, 100%)' -border 70x50 lemon.jpg lemon1.jpg

Опцией border указываем размеры границы. Есть несколько вариантов передачи параметров. Рассмотрим их на примерах. Первый вариант имеет формат XxY, где X - размер границы слева и справа от изображения, Y - сверху и снизу:

convert -bordercolor yellow -border 70x50 lemon.jpg lemon1.jpg
convert -bordercolor yellow -border 70x0 lemon.jpg lemon2.jpg
convert -bordercolor yellow -border 0x50 lemon.jpg lemon3.jpg

Соответственно получим:
поля со всех сторонполя слева и справаполя сверху и снизу

Второй вариант - это когда мы указываем размер не в пикселях, а в процентах от размера (ширина и высота) нашего изображения. например:

convert -bordercolor '#808000' -border 20%x10% lemon.jpg lemon4.jpg
convert -bordercolor '#808000' -border 20%x0% lemon.jpg lemon5.jpg
convert -bordercolor '#808000' -border 0%x10% lemon.jpg lemon6.jpg

Получим:
поля со всех сторонполя слева и справаполя сверху и снизу

Третий вариант - просто указываем размеры границы в пикселях или в процентах от ширины/высоты (этот вариант очень удобен, так как размер высчитывается отдельно от ширины и высоты):

convert -bordercolor 'rgb(173, 255, 47)' -border 50 lemon.jpg lemon7.jpg
convert -bordercolor 'rgb(173, 255, 47)' -border 15% lemon.jpg lemon8.jpg

В результате получаем:

Чтобы сделать прозрачную границу (обратим внимание, что не все форматы поддерживают альфа-канал), добавим опцию matte и в качестве цвета укажем none:

convert -matte -bordercolor none -border 10% lemon.jpg lemon9.png

Результат:
прозрачные поля
С опциями разобрались. Теперь расскажу как обработать сразу несколько изображений. Для этого есть 2 способа - воспользоваться командой mogrify или использовать bash-скрипт.

Первый вариант удобен, когда нам нужно добавить рамку к целой папке изображений или фото. Команда выглядит так:

mogrify -bordercolor white -border 30 *.jpg

В результате ко всем изображениям в формате jpg будет добавлена белая рамка. (ВАЖНО! в таком формате все изображения будут перезаписаны! Будьте внимательны и храните копии изображений). Чтобы избежать этого, укажем формат выходного файла:

mogrify -bordercolor white -border 30 -format png  *.jpg

В результате мы получим файлы с такими же именами, но в другом формате. Но это неудобный способ, так как смена формата туда обратно снижает качество картинки. Поэтому воспользуемся bash скриптом:

#!/bin/bash

img=("$@")
count=${#img[@]}

for (( i=0; i<$count; i++ )); do
 name=${img[${i}]%.*}
 convert -bordercolor white -border 100x30 "${img[${i}]}" "$name bord.jpg"
done

В скрипте уже знакомая нам convert, чтобы указать свои параметры опциям, просто открываем скрипт в любом текстовом редакторе и меняем на нужные.

Для запуска скрипта скопируйте его в текстовый файл, который назовите, например, add_border.sh и добавьте возможность запуска командой chmod u+x add_border.sh 

Скрипт запускам командой:
./add_border.sh files*.jpg

Файлы можно указывать и как:
./add_border.sh file1.jpg file2.jpg и так далее.

На этом все.
Всего вам доброго.

17 апреля 2015 г.

Устанавливаем Telegram на Ubuntu 14.04

В свете того, что вконтакте уже поднадоел тем, что постоянно глючит, сообщения отправляются медленно, приложение на Android постоянно вылетает когда ему захочется (это больше всего огорчает), поэтому расскажу кратко что это за зверь Telegram и как установить его desktop версию на Ubuntu.

Разработал его основатель вконтакте Павел Дуров, но Telegram не предназначался для российского рынка, поэтому оффициальные приложения на английском. И так, в чем плюсы:
  • использует свой собственный протокол под название MTProto, который предполагает, что для аутентификации используется шифрование RSA и DH, ключ хранится у нас и на сервере, так же используется хеш-суммы SHA1 и MD5
  • можно организовать секретный чат, при ктором сообщения шифруются алгоритмом AES, причем самое крутое, что ключ хранится только у участников чата, то есть на сервере телеграма ключа нет и история переписки доступна только нам (да да, можно устраивать шифрованные виртуальные сходки)
  • в целом удобное приложение, интерфейс похож на мобильное приложение вк, что не удивительно, так же мной небыли замечены серьезные глюки или недоработки, проще говоря пользоваться им удобно
А теперь о минусах:
  • увы, но сложно будет победить консерватизм ваших друзей и пересадить их на новый сервис, sad but true
  • закрытый исходный код сервера, это скорее минус, потому что черт знает что на нем происходит, хотите секретности - используйте секретные чаты или глухую поляну в темном лесу
  • лично для меня минус - нельзя кидать музыку
Под убунту есть две версии приложения, расскажу как установить обе версии.
Первый вариант - официальное приложение с сайта самого телеграма - https://desktop.telegram.org/
Скачивать не нужно, мы будем устанавливать через PPA. Для этого открываем терминал и вбиваем туда:
sudo add-apt-repository ppa:atareao/telegram
Соглашаемя с добавлением нового PPA (жмем Enter)
Дальше вводим:
sudo apt-get update
sudo apt-get install telegram
После открываем Unity, вбиваем telegram, выбираем там наше приложение и приступаем к настройке:
открываем telegram в unity

Далее жмем Start Messaging:
настройка tekegram
И вводим свой номер телефона. Да, при этом Telegram уже должен быть установлен на телефоне, нам туда придет код подтверждения:
вводим номер телофна
Вводим код, и сразу можем приступать к использованию. Для этой версии все.

Теперь о втором варианте, есть еще вариант приложения, которое за основу берет веб-версию телеграма. По сути у нас будет веб-приложение в отдельном окне.
Для установки открываем терминал и вводим туда:
sudo add-apt-repository ppa:costales/unity-webapps-telegram
sudo apt-get update
sudo apt-get install unity-webapps-telegram
После успешной установки аналогично открываем unity и запускаем приложение:
запускам telegram
Вводим номер телефона:

Получаем свой коди и опять же переходим к чатам. Все аналогично.

Теперь кратко о версиях. Мне лично больше приглянулся первый, потому что это нативное приложение и по ощущениям работает оно шустрее, второй вариант довольно долго грузился, и выглядит он похуже, но при этом экран настроек больше похож на экран из приложения для android. Поэтому можете попробовать установить оба варианта, а там уже выбрать, какой вам больше по душе.

UPD: тут можно почитать, как добавить первую версию (официальный клиент) в автозапуск: http://blog.edtex.ru/2015/04/telegram-autostart-ubuntu-1404.html

На этом закончим. Если возникнут вопросы или проблемы, пишите в комментарии.