Как сжать изображение? - PullRequest
0 голосов
/ 21 июня 2011

У меня проблема со сжатием изображения. Мне нужно много файлов (700-900kb) сжимать до 70-80kb файлов без потеря качества. (или небольшая потеря) Я нашел пункт меню «Сохранить для Web и устройств ...» в Photoshop. Работает отлично. Но я не хочу использовать фотошоп программно. Может быть, кто-то знает, как решить эту проблему с другие сторонние компоненты или фреймворки?

Спасибо за любые идеи!

Ответы [ 4 ]

1 голос
/ 21 июня 2011

.NET имеет несколько библиотек декодирования / кодирования изображений, часто привязанных к определенной структуре графического интерфейса пользователя (например, в Windows Forms у вас есть System.Drawing.Image , а для WPF см. Imaging Обзор глава по MSDN).

Существуют также сторонние библиотеки, специализирующиеся на преобразовании / сжатии изображений, которые вы можете найти в Интернете (как бесплатные, так и не бесплатные)

Как правило, объем экономии, получаемый при сжатии изображения, сильно зависит от исходного формата. Если у вас уже есть фотографии в формате JPEG с нормальным сжатием (качество 85%), вы не сможете ничего сделать с точки зрения их уменьшения, за исключением изменения их размера. Если у вас есть необработанные растровые изображения (например, BMP, несжатый / TIFF с низким сжатием и т. Д.), Вы можете ожидать довольно большой экономии с большинством форматов сжатия

При выборе формата изображения учитывайте следующее:

  • Фотографии и тому подобное: JPEG часто будет хорошо. Хорошая экономия при разумной потере качества
  • Скриншоты и аналогичные: PNG обычно дает лучшие результаты (PNG без потерь). JPEG часто создает хорошо видимые артефакты на скриншотах

Сжатие уже сжатого изображения (т.е. PNG, JPEG и т. Д.) С помощью алгоритма сжатия общего назначения, такого как ZIP или RAR, на практике не даст вам никакой экономии. Вы можете получить файл большего размера.

0 голосов
/ 22 июня 2011

http://geekswithblogs.net/bullpit/archive/2009/04/29/compress-image-files-using-c.aspx

маленький гугл не повредит. удачи

0 голосов
/ 21 июня 2011

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

Например, изменить размер каждого изображения в папке (уничтожить оригиналы)) до QVGA:

mogrify -resize 320x240 *.jpg

. Чтобы сохранить соотношение сторон, выполните

mogrify -resize 320x240! *.jpg

. Если вам нужно пройти через структуру каталогов, это то, как вы можете это сделать в системах * nix (такжеуничтожение оригиналов)

find . -type f -name *.jpg -exec convert -resize 800x800 {} \;

Также имеется переключатель качества, см. здесь

0 голосов
/ 21 июня 2011

Вы можете взглянуть на проект FreeImage .Он имеет оболочку C #, которую вы можете использовать.

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