Программный выбор формата преобразования изображения в JPEG или PNG для отображения Silverlight - PullRequest
8 голосов
/ 13 мая 2010

У меня есть проект, в котором мне нужно преобразовать большое количество типов изображений для отображения в приложении Silverlight - TIFF, GIF, WMF, EMF, BMP, DIB и т. Д. Я могу выполнить эти преобразования на сервере перед увлажнением приложение Silverlight.

Однако я не уверен, когда мне следует выбрать какой формат - JPG или PNG. Существует ли какой-то стандарт, например, TIFF всегда должен быть JPEG, а GIF всегда должен быть PNG. Или, если BMP 24-битный, он должен быть преобразован в JPEG - любой ниже, и это может быть PNG. Или все PNG и почему ?

То, что я обычно вижу или вижу в ответ на этот тип вопроса: " Хорошо, если изображение является фотографией, используйте JPEG " или " Если у него прямые линии, PNG лучше ." К сожалению, я не могу позволить себе роскошь просматривать какие-либо файлы изображений и хотел бы просто стандартного способа сделать это с помощью кода, даже если это миллионы операторов if / then.

Существуют ли какие-либо стандарты или лучшие практики по этому предмету?

Ответы [ 3 ]

5 голосов
/ 24 мая 2010

Самое простое, что могло бы сработать - это "сохранить все детали" ("качество 100%"), т. Е. Всегда использовать PNG, а не JPEG.

Изображения в формате PNG всегда выглядят идентично оригиналу (без потерь). Изображения JPG обычно выглядят примерно так же, как и оригиналы, но на некоторых изображениях (например, штриховые рисунки) JPG дает странные артефакты сжатия (это с потерями).

  • Это не помогает конвертировать изображения JPEG в изображения PNG. Так что передавайте JPEG файлы напрямую без конвертации. Если файл контейнера TIFF содержит изображение JPEG, извлеките его в файл стандартного формата JPEG; в противном случае, вероятно, лучше конвертировать этот TIFF-файл в формат PNG.
  • рассмотрите возможность создания как файлов JPEG, так и файлов PNG; если файл JPEG «значительно» меньше, чем файл PNG, используйте файл JPEG.
  • ". Emf" и ".wmf" по своей сути основаны на векторах, а не на растровой графике. PNG лучше, чем JPEG для векторной графики, но лучше всего будет векторный формат файла. Можно ли использовать стандартный формат векторной графики (".svg")?
1 голос
/ 13 мая 2010

Вы можете использовать такой сервис, как Smush.it - он подскажет вам оптимальный оптимизированный формат изображений и запустит сжатие для вас.

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

1 голос
/ 13 мая 2010

Одним большим преимуществом JPG перед PNG является то, что JPG обеспечивают хороший баланс между размером изображения и качеством. Если размер файла не имеет значения, возможно, PNG - это то, что нужно, поскольку он предлагает большую гибкость, чем JPG Это на самом деле не отвечает на ваш вопрос.

...