Грошова допомога постраждалим у війні!
Магазин спортивного харчування Strong Life
+ Ответить в теме
Показано с 1 по 2 из 2.
  1. #1
    Offline
    part of me

    Как конвертировать фото в Linux


    Привет. Сегодня небольшой опус на тему конвертации фотографий в Linux. А именно массивов фотографий. Давайте рассмотрим простой пример, в вашем очередном путишествии вы нафоткали сотню другую фотографий. Если вы являетесь владельцем новой цифровой камеры, с матрицей в 7-12МгП то вполне вероятно, что кажадое отснятое вами фото будет «весить» порядка 3.4Мб, во всяком случае так у меня с моим Canon SX10 IS. Вы перебросите все фотки на ваш комп, скажем в папку /home/user/photo/date и понятное дело, что «сырые» фотографии займут солидное место на вашем жестком диске. Если же вы любитель фотографировать, то место у вас скоро закончиться, даже на объемном винтчестере. По этому самым разумным было бы пережать все фотографии, что-бы вес одной фотки не привышал 412Кб и при этом качество осталось приемлимым. Обрабатывать каждое фото в ручную будет очень кропотливым делом, по этому ниже я предложу вам пару методов, как сделать это быстро и без особых услилий.

    Метод первый, консольный


    Итак первый метод, тот которым например пользуюсь я, консольный. Реализуется он с помощью программы convert входящей в состам консольного графического пакета Imagemagick.

    Первое, что вам необходимо, это установить программу Imagemagick:
    Код:
    sudo aptitude install imagemagick
    Это всё. Теперь когда программа у вас в системе. Вы можете пользоваться утилитой convert. Что-бы пережать одну фотографию, выполните в консоли следующую команду:
    Код:
    convert -resize 1024 -quality 90 input.jpg output.jpg
    где:
    -resize – разрешение которое вы хотите задать исходящей фотографии
    -quality – качество

    Для тех, кто не ищет легких путей и кто по факту почти консольный извращенец, есть еще один одна команда. Она создаст копии файлов которые вы будете пережимать.

    Код:
    ls *.JPG | cut -d . -f 1 | xargs -L1 -i convert -resize 1024 {}.JPG {}.jpg
    В итоге вы получите изображение с разрешением 1024×768Mp, стоит упомянуть что convert умная утилита и учитывает соотношение сторон не ломая картинку, вес готового изображения у меня получился 254,6Kb. Как вы уже догадались, нет необходимости указывать 1024×768, convert сам в курсе разрешений, мало того, если даже вы укажете какое-то экзотическое разрешение, convert сам высчитает соотношение сторон и даст вам нормалное фото на выходе. Как по мне, это прекрасно!

    Теперь, не выполнять же вам эту команду для каждого отдельного файла! По этому если в директории /home/user/photo/date у вас около трех сонет фоток, то разумным будет, завернуть вышеуказанную команду в скрипт, и выполнить скрипт. Все просто:

    Создайте файл convert.sh:

    Код:
    mkdir ~
    touch convert.sh
    И впишите туда вот этот скрипт:

    Код:
    #!/bin/bash
    for i in *.JPG
     do
      echo "Working on $i ..."
      convert -resize 1024 -quality 89 $i $i 2> /dev/null
     done
    echo " "
    echo "... Done!"
    echo " "
    exit 0
    Теперь сделайте его исполняемым:

    Код:
    chmod +x convrt.sh
    скопируйте его в директорию с вашими фото, для примера /home/user/photo/date

    Код:
    cp convert.sh /home/user/photo/date
    Запустите скрипт и идите пить кофе!

    Код:
    sh convert.sh
    Скрипт всё сделает за вас. Как видите всё очень просто и легко, а этот маленький скриптик поможет вам сэкономить тучу времени. Помните, что в скрипте можно менять разрешение файла, например *.JPG, *.jpg, *png и так далее.
    По окончании работы, скрипт напишет вам в консоли Done! Но если вам этого мало, и вы хотите большего, пожалуйста, можно сделать alias в .bashrc и получить уведомление об окончании работы с помощью NotifyOSD.
    Откройте .bashrc:

    Код:
    gedit ~/.bashrc
    И впишите туда:

    Код:
    alias alert='notify-send -i /usr/share/icons/gnome/32x32/apps/gnome-terminal.png "[$?] $(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/;\s*alert$//'\'')"'
    Теперь когда запускаете скрипт, делайте это так:
    Код:
    sh script.sh; alert
    По окончании работы скрипта, в правом верхнем углу у вас вылетит красивое сообщение, что работа сделана. За столь полезное дополнение спасибо Dustin Kirkland.
    К слову, для любителей рассортировывать свои фотографии по дате, типа \день\месяц\год есть команда для создания такой папки:

    Код:
    mkdir `date +%m_%d_%Y`
    Вы получите папку вида:

    Код:
    ls -la
    drwxr-xr-x  3 booch booch   4096 2010-09-13 23:45 .
    drwxr-xr-x 83 booch booch   4096 2010-09-13 23:41 ..
    drwxr-xr-x  2 booch booch   4096 2010-09-13 23:45 09_13_2010
    Для тех, кто не хочет, что-бы готовые файлы замещали исходники, используйте этот скрипт:

    Код:
    #!/bin/bash
     
    for i in *.JPG
     do
      echo "Working on $i ..."
      convert "$i" -resize 800000@ -quality 80 "small.$i"
     done
    echo " "
    echo "... Done!"
    echo " "
    exit 0
    Ниже я записал маленький ролик, где продемонстрированно всё, что я описал выше, включая работу скрипта. Надеюсь вам это понравить, а главное пригодиться.


  2. #2
    Offline
    part of me

    Re: Как конвертировать фото в Linux


    Метод второй, графический

    Данный метод больше подойдет тем, кто не любит по каким то причинам использовать консоль. Для вас существует замечательная программа Converseen. С приятным графическим интерефейсом. Установить программу себе в систему:

    Для Ubuntu 10.04 & Ubuntu 10.10

    Код:
    sudo add-apt-repository ppa:samrog131/ppa
    sudo apt-get update && sudo apt-get install converseen
    Для Fedora:

    Код:
    yum install converseen
    Далее вы найдете программу в «Приложения» – «Графика» – Сonverseen

    Так выглядит интерфейс программы

    Программа «при исполнении» обязанностей


    У программы простой и доступный интерфейс. Она не русифицированна, но там и так все понятно. Без труда можно указать разрешение фотографии как в процентах так и в пикселях. Программа поддерживает огромное колличество форматов. Можно указать каталог куда складывать готовые фото. Сделать так, что-бы они не замещались, а создавались новые с пометкой copy.

    Всё это может без труда делать скрипт, но если вам так нравиться больше, то пожалуйста! Надеюсь статья оказалась вам полезной и была интересной.

    источник
+ Ответить в теме

Похожие темы

  1. Windows, Linux чи MacOS? Яка ОС краще?
    Sandr в разделе Софт
    Ответов: 136
    Последнее сообщение: 03.11.2010, 22:39
  2. Ответов: 0
    Последнее сообщение: 12.09.2010, 14:01
  3. Фанатам Linux!
    Oburi в разделе Творчість та Інтереси
    Ответов: 2
    Последнее сообщение: 31.10.2008, 23:43