Добавить в корзинуПозвонить
Найти в Дзене
Linux Pages

Конвертирование кодировок, звуковых и графических файлов

При работе с ПК часто приходится конвертировать файлы из одного формата в другой. Примеров подобного конвертирования можно привести сотни, поэтому мы рассмотрим только основные программы, которые пригодятся каждому пользователю. Команда iconv используется для преобразования текстовых документов из одной кодировки в другую: $ iconv $ iconv -f cp1251 -t UTF-8 -o file.txt > file_utf8.txt Первая команда выводит список поддерживаемых кодировок. Вторая — конвертирует файл file.txt из кодировки cp1251 в кодировку UTF-8, результат записывается в файл file_utf8.txt. Для конвертирования различных графических форматов используется программа convert (чтобы она была доступна, нужно установить пакет imagemagic). Программа convert — это очень мощный и гибкий инструмент. Вот несколько примеров преобразования графических файлов из одного формата в другой: $ convert picture.png picture.bmp $ convert icon.gif icon.jpg ; из PNG в BMP ; из GIF в JPEG Но это очень простые варианты применения convert. Допуст

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

Команда iconv используется для преобразования текстовых документов из одной кодировки в другую:

$ iconv

$ iconv -f cp1251 -t UTF-8 -o file.txt > file_utf8.txt

Первая команда выводит список поддерживаемых кодировок. Вторая — конвертирует файл file.txt из кодировки cp1251 в кодировку UTF-8, результат записывается в файл file_utf8.txt.

Для конвертирования различных графических форматов используется программа convert (чтобы она была доступна, нужно установить пакет imagemagic). Программа convert — это очень мощный и гибкий инструмент. Вот несколько примеров преобразования графических файлов из одного формата в другой:

$ convert picture.png picture.bmp

$ convert icon.gif icon.jpg

; из PNG в BMP

; из GIF в JPEG

Но это очень простые варианты применения convert. Допустим, нужно преобразовать все PNG-файлы в BMP-файлы (такую операцию мне, как автору, приходится делать довольно часто — снимки экрана в Linux создаются в формате PNG, а верстальщики требуют формат BMP). Для этого используется вот такая длинная команда:

$ i=png; for fn in *.$i; do convert "$fn" "${fn/.$i/.bmp}"; done

По сути, она является сценарием на языке командной оболочки bash.

Наш сценарий можно усовершенствовать, добавив опции команды convert , например, опцию -resize , позволяющую изменить размер результирующего изображения. В следующем примере мы преобразуем все PNG-файлы в *.png.bmp, при этом размер результирующих изображений будет равен 50% от оригинала:

$ i=png; for fn in *.$i; do convert -resize 50% "$fn" "${fn/.$i/.bmp}"; done

Опцию resize можно использовать не только в пакетном режиме, а вместо процентов можно задать точный размер, например:

$ convert -resize 1024x768 big.jpg small.jpg

В этом файле размер изображения из файла big.jpg будет уменьшен до 1024 768, а результат сохранен в файле small.jpg. Почему именно уменьшен? Да потому, что в обратной операции (увеличение) обычно нет смысла — качество будет не то.

Также можно использовать опцию -rotate для поворота изображения, в нашем случае мы поворачиваем изображение на 270 :

$ convert -rotate 270 fokta.jpg fotka-rotate.jpg

Хотите добавить информацию об авторских правах? Это тоже можно сделать с помощью этой команды:

$ convert -fill black -pointsize 36 -font arial -draw text 20.70 "Copyright (с)

2012 Fedor Fedorovich." f1.jpg f1c.jpg

В данном случае надпись "Copyright (с) 2012 Fedor Fedorovich." будет нанесена на область, расположенную на 20 пикселов правее (ось x) и на 70 пикселов ниже (ось y) левого верхнего угла, шрифтом Arial, размером 36 пт, черным цветом. Результат будет сохранен в файле f1c.jpg. Используя команду пакетного изменения формата, приведенную выше, вы можете легко добавить информацию об авторских правах ко всем своим изображениям (нужно лишь модифицировать вызов команды convert ).

При желании можно легко преобразовать PDF в JPEG постранично:

$ convert file.pdf file-%03d.jpg

И, наоборот, преобразовать JPEG-изображения в PDF:

$ convert *.jpg file.pdf

Еще одна задача, часто выполняемая всеми пользователями — это конвертирование звука. Хотя эти операции и приятнее выполнять с помощью графических программ, но в Linux нет ничего такого, чего бы нельзя было сделать в консоли. Представим, что у нас есть диск AudioCD и его нужно "сграбить" на жесткий диск. Для этого можно использовать команду cdparanoia :

$ cdparanoia -B

После этого треки аудиодиска будут сохранены на жестком диске в текущем каталоге в виде WAV-файлов. Но они просто огромны! Поэтому следует преобразовать их в формат MP3 или OGG. Это можно сделать следующими командами:

# lame -b 256 in.wav out.mp3

# oggenc in.wav -b 256 out.ogg

Первая команда конвертирует файл в формат MP3, качество — 256 Кбит/с, вторая — в формат OGG. Если вы записываете музыку для себя и не планируете ее как-либо распространять, предпочтительнее выбрать формат OGG. Это открытый формат, а что будет с коммерческим форматом MP3 — никому не известно. С другой стороны, бытовая техника и автомагнитолы не читают формат OGG, поэтому он остается пока только сугубо компьютерным форматом.