Как конвертировать картинки — различия между версиями
Hymnazix (обсуждение | вклад) (Новая страница: «Категория:"Комильфошки" Подкинули мне на днях халтурку. Надо сделать каталог программ ...») |
Noname (обсуждение | вклад) (Перенес инструкцию) |
||
(не показаны 2 промежуточные версии 1 участника) | |||
Строка 1: | Строка 1: | ||
[[Категория:"Комильфошки"]] | [[Категория:"Комильфошки"]] | ||
+ | |||
+ | <!-- Инструкция находится на старом сайте который не обновлялся уже пять лет и может в любой момент исчезнуть, поэтому перенес ее сюда полностью. --> | ||
+ | |||
Подкинули мне на днях халтурку. Надо сделать каталог программ на сайт. Работа несложная, но трудоемкая. Особенно в части оформления. | Подкинули мне на днях халтурку. Надо сделать каталог программ на сайт. Работа несложная, но трудоемкая. Особенно в части оформления. | ||
Каждому внесенному в каталог приложению должно соответствовать две одинаковые картинки в формате JPG – маленькая (большая сторона – 125) и большая (большая сторона – 640). Делать их надо из скриншота, загруженного с официального сайта.<br/> | Каждому внесенному в каталог приложению должно соответствовать две одинаковые картинки в формате JPG – маленькая (большая сторона – 125) и большая (большая сторона – 640). Делать их надо из скриншота, загруженного с официального сайта.<br/> | ||
− | + | ||
+ | Технология, стало быть, такая. Сперва скачал картинку в формате 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. Часто начинающие пользователи испытывают страх перед скриптами, ошибочно полагая, что это обязательно должны быть какие-то многоэтажные конструкции. Это не всегда так — даже две-три команды, объединенные в одну, могут оказаться эффективны. Тем более, что их написание занимает буквально пару минут.