Нотатки від команди про майстерність, формати та невеликі рішення, що стоять за гарною круглою обрізкою.
Чому фотографічні PNG такі великі
PNG обіцяє записати кожен піксель, не втрачаючи жодного, і ця обіцянка дорого коштує на фото. За мільйонів м'яко зсувних тонів стискачу майже нема чого передбачати чи згортати, тож файл роздувається. Банальне фото 1600x1200 може сидіти на 3 до 5 МБ як PNG, але те саме зображення як JPEG за якості 85 вміщається в 200 до 400 КБ. Різниця зводиться до косинусного перетворення, на яке спирається JPEG, що крає зображення на блоки 8x8, скидає деталь високої частоти, яку око ледь реєструє, і щільно пакує те, що лишилося. Матеріал безперервного тону, тобто майже вся фотографія, стискається драматично. Бездоганна точність PNG відробляє своє на пласкій графіці й роботах у процесі, але це просто хибна обгортка для фото, яким ви маєте намір поділитися.
Прозорість та альфа-канал
8-бітний альфа-канал дозволяє PNG записати будь-який рівень непрозорості на піксель, від цілком наскрізного до цілком щільного. JPG не пропонує такого поля, тож прозорості нема де жити. Коли механізм зображень відбудовує PNG як JPEG, він спершу кладе картинку на обрану підкладку, а ця підкладка за замовчуванням біла, що саме і є причиною, чому наскрізні ділянки читаються потім білими. Висновок тупий, прозорий JPG не може існувати, бо формат не має про нього поняття. Коли вирізу треба вціліти, WebP чи незайманий PNG, ваші єдині маршрути. Araluma зупиняється на білому як заливці, бо він зливається з документами, слайдами й вітринними картками, де ці JPG найчастіше осідають.
Виміряна продуктивність запису
Усі ці цифри зняті з Chrome 148 на комп'ютері з Linux, спираючись на власний запис JPEG браузера. За 0,12 МП мініатюра 400x300 загортається за близько 10 до 15 мс. Підбийте до 0,78 МП, кадр 1024x768, і він сидить близько 13 до 20 мс. Знімок 8 МП у 3840x2160 потребує приблизно 1,4 секунди, а навіть монстр 48 МП у 8000x6000 просить лише близько 1,5 секунди. Писати JPG отак спритно випереджає запис PNG того самого зображення й цілковито обганяє AVIF, якому треба завантажити окремий модуль і який може скрипіти 25 секунд на тому зображенні 48 МП навіть на комп'ютері. Разом узяте, це один із найшвидших маршрутів будь-де в родині конвертації, і ніщо зайве не коштує його дістати, бо записувач JPEG уже живе в кожному браузері.
EXIF та обробка метаданих
Відбудова зображення чистить його позначки EXIF, IPTC та XMP з отриманого JPG у кожному браузері, що вимітає GPS-координати, корпус камери, позначку часу зйомки, текст авторського права й будь-які власні поля, що ніс PNG. Колірні профілі ICC беруть окремий маршрут, де Chrome і Safari тримають профіль sRGB на виході, а Firefox зрізає його разом із рештою. Тож JPG безпечний у sRGB усюди, але позначка широкого охоплення, як-от Display-P3 чи Adobe RGB, не пройде через Firefox. Якщо ваш конвеєр залежить від утримання всіх цих метаданих, орудуйте ними спеціальним інструментом після. Для щоденного вебу й обміну втрата позначок у радість, підрізаючи трохи ваги й витягуючи дані розташування з ваших фото.
Коли артефакти JPG помітні
JPEG міркує в блоках 8x8. Упустіть жорсткий стрибок між двома дуже різними кольорами всередині одного блока, і стиснення JPEG може лише накидати його жменькою частотних членів, лишаючи дзвін, слабкий ореол світліших чи темніших пікселів, що обіймає край. Фотографії ховають це добре, бо їхні краї ніколи не гострі як лезо, а навколишня мікроваріація маскує наближення. Але знімки екрана, логотипи, коробки з чіткими межами, літери чи сусідні плити плаского кольору оголюють його за будь-якої якості, бо це саме той сигнал, з яким математика мучиться. Правило пише себе само, тримайте знімки екрана, логотипи й графіку, повну тексту, подалі від JPG. Лишіть їх у PNG або переходьте на WebP заради худого файлу, що обходить дзвін начисто.
Приватність і куди потрапляє робота
Куди потрапляє робота, залежить від кількості. Для одного зображення нічого не залишає браузер, і ви можете перевірити це наживо за секунди. Відкрийте DevTools у Chrome, перейдіть на панель Мережа, відфільтруйте за XHR і Fetch і перетворіть файл. Під час кодування нічого не з'являється. Для двох або більше Araluma надсилає їх на наш сервер, який перетворює, збирає результат і повертає посилання для завантаження. Це посилання і перетворені файли видаляються приблизно за 2 години. Шлях для одного зображення тримає все на пристрої, поза мережею, тоді як пакет міняє це на завершення багатьох файлів за раз. Для знімка чогось приватного або фото, позначеного вашим розташуванням, перетворення по одному тримає його на вашій машині, справжня різниця, а не гасло.