Существует ли формат JPG в оттенках серого? - PullRequest
0 голосов
/ 24 июня 2018

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

Вопрос:

  1. Есть ли конкретный формат в градациях серого в спецификациях JPG?Я вижу это в формате обмена файлами JPEG , но не уверен, является ли это стандартом, используемым в настоящее время

  2. Или это "JPG в оттенках серого"просто обычно это цвет RGB JPG, где R value==G value==B value, и, следовательно, уменьшение размера файла является результатом сжатия трехкратных дублированных чисел?

Мне показалось, что это 2. потому чтов разных языках функции экспорта JPG не имеют опции оттенков серого, например toDataURL в Javascript:

var fullQuality = canvas.toDataURL('image/jpeg', 1.0);
var mediumQuality = canvas.toDataURL('image/jpeg', 0.5);
var lowQuality = canvas.toDataURL('image/jpeg', 0.1);

Ответы [ 2 ]

0 голосов
/ 24 июня 2018

Есть ли конкретный формат в градациях серого в спецификациях JPG?

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

Или это «JPG в оттенках серого», обычно это просто цвет RGB JPG, где значение R == значение G == значение B,и, таким образом, уменьшение размера файла является результатом сжатия трехкратных дублированных чисел?

Не все API-интерфейсы предоставят доступ ко всем доступным функциям.Обработка оттенков серого зависит от формата и доступна не во всех других форматах.В частности, Canvas API пытается стандартизировать все возможные форматы экспорта.Поэтому поддерживается только подмножество функций.

Когда вы сохраняете изображение через Canvas API, вполне вероятно, что вы сохраняете JPEG с компонентами цветности, и они фактически равны нулю и хорошо сжимаются.(При этом конкретное поведение не определено, и браузер может выбрать оптимизацию и сохранение JPEG в оттенках серого, обнаруживая оттенки серого - все, что требуется.)

0 голосов
/ 24 июня 2018

Цветной JPEG имеет 3 компонента: Y Cb Cr

JPEG в градациях серого имеет 1 компонент: Y

Вы можете преобразовать цветной JPEG в оттенки серого, просто обновив заголовок, чтобы указать 1 компонент, и удалив сканы Cb и Cr.

...