Как конвертировать картинки — различия между версиями

Материал из Rosalab Wiki
Перейти к: навигация, поиск
(Новая страница: «Категория:"Комильфошки" Подкинули мне на днях халтурку. Надо сделать каталог программ ...»)
 
(Перенес инструкцию)
 
(не показаны 2 промежуточные версии 1 участника)
Строка 1: Строка 1:
 
[[Категория:"Комильфошки"]]
 
[[Категория:"Комильфошки"]]
 +
 +
<!-- Инструкция находится на старом сайте который не обновлялся уже пять лет и может в любой момент исчезнуть, поэтому перенес ее сюда полностью. -->
 +
 
Подкинули мне на днях халтурку. Надо сделать каталог программ на сайт. Работа несложная, но трудоемкая. Особенно в части оформления.
 
Подкинули мне на днях халтурку. Надо сделать каталог программ на сайт. Работа несложная, но трудоемкая. Особенно в части оформления.
 
Каждому внесенному в каталог приложению должно соответствовать две одинаковые картинки в формате JPG – маленькая (большая сторона – 125) и большая (большая сторона – 640). Делать их надо из скриншота, загруженного с официального сайта.<br/>
 
Каждому внесенному в каталог приложению должно соответствовать две одинаковые картинки в формате JPG – маленькая (большая сторона – 125) и большая (большая сторона – 640). Делать их надо из скриншота, загруженного с официального сайта.<br/>
[http://foss-blog.ru/?p=522#more-522 Продолжить чтение "Как конвертировать картинки"]
+
 
 +
Технология, стало быть, такая. Сперва скачал картинку в формате PNG, потом сделал из нее JPG, потом сделал маленькую копию, потом большую, потом удалил «исходник», чтобы места на диске не занимал. В-общем, рутинная работа для которой нужна программа convert из пакета ImageMagick.
 +
 
 +
В системе Mandriva пакет устанавливается командой
 +
 
 +
urpmi imagemagick
 +
 
 +
 
 +
Теперь считаем. Если картинок много, то получается совсем невесело. Надо это дело как-то автоматизировать.
 +
Предлагаю два способа.
 +
 
 +
Первый:
 +
 
 +
    #!/bin/bash
 +
    for img in *.png; do
 +
        convert -quality 60 -resize 640x480 "$img" "$img.MAIN.jpg"
 +
        convert -quality 60 -resize 125x100 "$img" "$img.PRE.jpg"
 +
        rm "$img"
 +
    done
 +
 
 +
 
 +
Его недостаток в том, что обрабатываются файлы только из текущего каталога. Если надо охватить и вложенные директории, то ничего не получится.
 +
 
 +
Второй:
 +
 
 +
    #!/bin/bash
 +
    find -name "*.png" | xargs -I {} -t convert -quality 60 -resize 640x640 {} "{}.MAIN.jpg"
 +
    find -name "*.png" | xargs -I {} -t convert -quality 60 -resize 125x100 {} "{}.PRE.jpg"
 +
    find -name "*.png" | xargs -I {} -t rm {}
 +
 
 +
 
 +
Этот метод уже универсальный.
 +
 
 +
PS. Часто начинающие пользователи испытывают страх перед скриптами, ошибочно полагая, что это обязательно должны быть какие-то многоэтажные конструкции. Это не всегда так — даже две-три команды, объединенные в одну, могут оказаться эффективны. Тем более, что их написание занимает буквально пару минут.
 +
 
 +
[http://open-life.org/blog/useful/1790.html Источник"]

Текущая версия на 20:43, 31 октября 2022


Подкинули мне на днях халтурку. Надо сделать каталог программ на сайт. Работа несложная, но трудоемкая. Особенно в части оформления. Каждому внесенному в каталог приложению должно соответствовать две одинаковые картинки в формате JPG – маленькая (большая сторона – 125) и большая (большая сторона – 640). Делать их надо из скриншота, загруженного с официального сайта.

Технология, стало быть, такая. Сперва скачал картинку в формате PNG, потом сделал из нее JPG, потом сделал маленькую копию, потом большую, потом удалил «исходник», чтобы места на диске не занимал. В-общем, рутинная работа для которой нужна программа convert из пакета ImageMagick.

В системе Mandriva пакет устанавливается командой

urpmi imagemagick


Теперь считаем. Если картинок много, то получается совсем невесело. Надо это дело как-то автоматизировать. Предлагаю два способа.

Первый:

   #!/bin/bash
   for img in *.png; do
       convert -quality 60 -resize 640x480 "$img" "$img.MAIN.jpg"
       convert -quality 60 -resize 125x100 "$img" "$img.PRE.jpg"
       rm "$img"
   done


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

Второй:

   #!/bin/bash
   find -name "*.png" | xargs -I {} -t convert -quality 60 -resize 640x640 {} "{}.MAIN.jpg"
   find -name "*.png" | xargs -I {} -t convert -quality 60 -resize 125x100 {} "{}.PRE.jpg"
   find -name "*.png" | xargs -I {} -t rm {}


Этот метод уже универсальный.

PS. Часто начинающие пользователи испытывают страх перед скриптами, ошибочно полагая, что это обязательно должны быть какие-то многоэтажные конструкции. Это не всегда так — даже две-три команды, объединенные в одну, могут оказаться эффективны. Тем более, что их написание занимает буквально пару минут.

Источник"