Прозрачность с JPEG - PullRequest
       34

Прозрачность с JPEG

0 голосов
/ 30 августа 2011

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

Так кто-нибудь знает, как этого добиться, например, с помощью PHP или JavaScript?

Ответы [ 5 ]

7 голосов
/ 30 августа 2011

Нет. Вы не можете сделать это. Файлы JPG не поддерживают альфа-каналы и не имеют возможности назначать определенные цвета прозрачными (в стиле GIF).

4 голосов
/ 17 октября 2013

есть способ, но немного хакерский: http://jim.studt.net/jpeg-alpha/

4 голосов
/ 30 августа 2011

С этим связано несколько проблем, и все они связаны с тем, что JPEG является форматом сжатия с потерями. Формат JPEG оптимизирован для естественных изображений, а острые края будут размыты. Если вы хотите, чтобы определенный пиксель имел значение # d67fff, нет гарантии, что после преобразования цвета, FDCT, квантования, IDCT и преобразования цвета этот пиксель все равно будет иметь это значение. Также существует большая вероятность того, что значение этого пикселя будет появляться в областях, которые вам не нужны.

2 голосов
/ 30 августа 2011

Нет. JPEG не поддерживает прозрачность и вряд ли сделает это в любое время скоро. http://www.faqs.org/faqs/jpeg-faq/part1/section-12.html

1 голос
/ 30 августа 2011

Вы не можете этого сделать, клиент визуализирует изображение и не знает, что вы хотите, чтобы он воспринимал этот цвет как прозрачный (плюс различные методы сжатия в jpeg в любом случае не будут работать с прозрачными пленками).* Я полагаю, что вы можете использовать 8-битный пользовательский поддон png, который сэкономит вам много места.В противном случае 24-битный PNG - ваш единственный вариант с высоким цветом.

...