Изменение размера PNG и сохранение при сохранении прозрачности

10

У меня есть более 700 изображений PNG. Мне нужно изменить размер и сохранить их. Однако мне также нужно, чтобы их прозрачность была целой.

Я попробовал Irfanview, но это не сработало. GIMP работает, но я не могу найти вариант пакетного сохранения. Я не собираюсь вручную изменять размер и сохранять более 700 изображений. Это слишком утомительно.

Есть ли какие-нибудь приложения, которые выполняют работу, в которой я нуждаюсь?

Сварливый медведь
источник
Вы пробовали ImageMagick?
Slhck
Нет, но разве это не для серверов?
сварливый медведь
1
Что вы имеете в виду, для серверов? Это программное обеспечение командной строки, которое может быть запущено в любой операционной системе.
Slhck
Да нет Командная строка не моя сила. Мне нужно что-то с удобным графическим интерфейсом.
сварливый медведь
@DonSalva вы можете сделать это в пределах 2 строк cmd, используя ffmpeg, даже без силы
Jet

Ответы:

10

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

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

##  bash (Linux, OSX):
for i in *png; do convert "$i" -resize 32x32 "$i"; done
##  on Windows:
for %i in (*png); do convert %i -resize 32x32 %i; done

Обратите внимание, что для строки Windows, если вы используете ее в сценарии, а не в командной строке, вам нужно использовать %%iвместо %i.


Другим вариантом будет сценарий GIMP . Этот скрипт изменит размер вашего изображения ( источник ):

(define (batch-resize pattern width height)
(let* ((filelist (cadr (file-glob pattern 1))))
(while (not (null? filelist))
(let* ((filename (car filelist))
(image (car (gimp-file-load RUN-NONINTERACTIVE filename filename)))
(drawable (car (gimp-image-get-active-layer image))))
(gimp-image-scale-full image width height INTERPOLATION-CUBIC)
(gimp-file-save RUN-NONINTERACTIVE image drawable filename filename)
(gimp-image-delete image))
(set! filelist (cdr filelist)))))

Сохраните его как batch_resize.scmв scriptsкаталоге GIMP , затем запустите его следующим образом:

gimp -i -b '(batch-resize "*.JPG" 604 453)' -b '(gimp-quit 0)'

ОБНОВИТЬ:

Я только что наткнулся на этот пост, который предполагает, что плагин GIMP David Batch Processor должен делать именно то, что вы хотите. Статья посвящена Linux, но на странице плагина есть ссылка на версию для Windows .

terdon
источник
Мой плохой, я всегда забывал ОС. Это Win7 64bit.
сварливый медведь
Ну, у ImageMagick есть версия для Windows, и вы должны (каким-то образом) иметь возможность использовать GIMP-скрипт в Windows.
Terdon
@DonSalva см обновленный ответ.
Terdon
ImageMagick - отличный инструмент для такого рода работ. Узнайте, как использовать это, и вы будете любить это навсегда!
Ли Харрисон
Все спасибо @evilsoup за добавление командной строки Windows.
Тердон
4

Я думаю, что инструмент ImBatch может помочь вам с вашей задачей. У меня отлично работает с Win7 x64. Это свободно.

Макс Смирнов
источник
Отличный инструмент, гораздо более гибкий, чем IrfanView, и поддерживает PNG с альфа - спасибо!
Томаш Кафка
3

XNConvert имеет простой и интуитивно понятный графический интерфейс для этих задач.

XnConvert - это мощный и бесплатный кроссплатформенный пакетный процессор изображений, позволяющий объединить более 80 действий. Совместим с 500 форматами. Он использует модуль пакетной обработки XnViewMP

  • пакетная обработка
  • сохраняет прозрачность (тестируется с прозрачным PNG )
  • автоматическое или предопределенное изменение размера
  • установка не требуется

введите описание изображения здесь

nixda
источник
Я попробовал это, и он не поддерживал прозрачность (версия для Mac). Делает ли это, какой вид повторной выборки используется (я использовал Lanczos, как вы сделали).
niico
Решил это сам - с помощью Bilinear Resampling. В окне «После» вы можете видеть, как оно будет выглядеть - если прозрачная область черная, вы знаете, что она не будет работать.
niico
@niico Я сейчас попробовал 3 различных метода повторной выборки, Lanczos тоже. Все они производят прозрачные изображения. Может быть, версия MAC работает по-другому
nixda
Я пробовал это на ПК и Mac - одинаковые на обоих. Далее - теперь я замечаю, что повторное сэмплирование, которое я сделал, является адским и бесполезным.
niico
2

По умолчанию использование FFMpeg - самый короткий путь :)
Загрузите его здесь , поместите в папку с вашими файлами, откройте командную строку, перейдите в папку (с помощью cd) и напишите там:

mkdir Resized
for %f in (*.png) do ffmpeg -i "%~nxf" -s 32x32 "Resized\%~nxf"

и измените 32x32с вашим размером. Он изменит ваши PNG и поместит их в Resizedпапку.
Это сделает работу без пакетного файла. Однако, если вы хотите поместить это в файл bat, напишите %%вместо %.

Надеюсь, это поможет вам.

форсунка
источник
0

Я не пробовал ImBatch или XNConvert, которые другие упоминали здесь, но вот еще несколько советов для вас:

  • pngquant (инструмент командной строки. Сам я использовал Windows GUI PNGoo, включенный на странице)
  • Color quantizer (множество возможностей для настройки параметров с использованием различных алгоритмов сглаживания и т. Д. Я никогда не заставлял его работать так же хорошо, как PNGoo / pngquant, но это может быть из-за моих ограниченных знаний).
  • TinyPNG.com (бесплатный веб-сервис имеет ограничение в 20 файлов, каждый размером менее 5 МБ)
деревенщина
источник
0

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

https://gist.github.com/pixelbacon/7754cba64125b0240504

использование

  • Установите Photoshop CC или более новую версию.
  • Откройте скрипт в фотошопе.
  • Диалог попросит вас выбрать исходную папку.
  • Диалог попросит вас выбрать папку назначения.
  • Другой диалог спросит вас о максимальной ширине и высоте.
  • Другой диалог попросит вас об идеальной ширине, а затем об идеальной высоте.
  • Подождите, пока скрипт откроет все файлы PSD или AI, которые у вас есть в исходной папке, и сохраните их как прозрачный PNG-24.
  • Диалог сообщит вам, когда это будет сделано.

Рекомендации

Было более 2 ссылок на ссылки, моя текущая репутация не позволяет мне публиковать больше. Смотрите оригинальный скрипт, так как ссылки документированы.

pixelbacon
источник