Ivan_FM Ответов: 4

Вопрос производительности: PNG vs JPEG


Я должен выбрать между PNG или JPEG форматом изображения для изображений, с которыми будет работать мой проект.
Я тестировал преобразование одного и того же изображения в этот формат, различную конфигурацию ppp, и все результаты говорят о том, что я могу получить хорошее разрешение с помощью JPEG с гораздо меньшим пространством изображения.

Конечно, PNG-это "формат сжатия без потерь", а JPEG получает более сжатые изображения... но что я нигде не читал, так это то, что это сжатие означает различное влияние производительности на мой проект.

Что я уже пробовал:

Это мой пример, изображение с 982x650 пикселями, на 175ppp

PNG - файл -> 1582kB
Файл-и JPEG ГТ; 141kB

Разница очевидна. И вот мой вопрос: эта разница в размере означает, что моя программа будет “распаковывать” файлы jpeg перед их использованием? Файлы PNG будут быстрее, потому что они менее сжаты?

Спасибо.


В поисках, я основал эту ссылку, надеюсь, что она была полезна и для нас тоже. Узнайте, когда использовать JPEG, GIF или PNG с этой графикой

F-ES Sitecore

Используйте Класс секундомера чтобы вовремя провести свои собственные тесты и убедиться в этом самому. Получите кучу образцов изображений и сожмите\покажите их пару тысяч раз в цикле и время, сколько времени это займет для jpg vs png.

Ivan_FM

хорошо! Это хороший момент, я попробую его, а потом расскажу нам, как это происходит ;)

4 Ответов

Рейтинг:
34

Jochen Arndt

У вас уже есть хорошая ссылка, описывающая различия.

Когда изображения отображаются приложением, они должны быть преобразованы в растровые изображения с использованием глубины цвета графической системы. Поскольку в настоящее время это обычно 24-битное изображение (8 бит на канал RGB), подготовка изображений с такой глубиной цвета-хорошее начало. Преобразование PNG-изображения в растровое изображение происходит очень быстро, когда глубина цвета совпадает и изображение не нужно масштабировать. Сжатый образ всегда должен быть декомпрессирован, что занимает некоторое время. Но это не должно быть проблемой для обычных систем.

Как уже упоминалось, масштабирование также заняло некоторое время обработки. Хотя время снова обычно не является проблемой, правильное масштабирование позволяет избежать артефактов и может уменьшить размер изображения.

Мое предложение:


  • При необходимости преобразуйте изображения в 24-битную глубину цвета (32-битную с альфа-каналом).
  • Масштабируйте изображения до конечного разрешения.
  • Выберите формат в соответствии с советами по ссылке: JPEG для (очень) больших изображений, таких как фотографии, и PNG для изображений малого и среднего размера (графики).


Рейтинг:
2

Luc Pattyn

Выбор PNG/JPG очень сильно зависит от обстоятельств:

1. Качество изображения
вы теряете некоторые из них при использовании сжатия.
было бы не очень хорошей идеей использовать JPG для скриншота текстового документа с небольшими размерами шрифта.

2. производительность
что ты делаешь с этими образами?
передаются ли они по потенциально медленному или дорогостоящему соединению? если это так, то размер файла-это то, что имеет наибольшее значение.
они просто хранятся и используются локально на обычном ПК? если это так, то все равно, есть достаточно места на диске и скорости, памяти, вычислительной мощности.


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


Рейтинг:
1

Mehdi Gholam

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

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

Если вы сомневаетесь, поддерживайте все форматы, и пусть ваши пользователи решают сами.


Рейтинг:
0

Silicon1

JPEG.
- Лучше всего подходит для естественных изображений (фотографий).
- Не поддерживайте прозрачность.
- Регулируемый размер. Меньше размера, меньше качества.

формат PNG.
- Лучше всего подходит для синтетических изображений (линейное искусство, компьютерная графика, иконки и т. д.).
- Поддержка прозрачности.
- Всегда безупречное качество.
- Вы можете уменьшить zise с помощью PNGour, TruePng и подобных программ.

Производительность всегда хороша на любом ПК.