Бележки от екипа за майсторството, форматите и малките решения зад добрия резултат.
Защо фотографските PNG са толкова големи
Компресията на PNG без загуба съхранява всеки пиксел точно. За фотографско изображение с милиони фино менящи се тонове това дава много големи файлове, защото между съседните пиксели почти няма какво да се обедини или предскаже. Типична снимка 1600x1200 се записва като PNG с голям размер. Същото изображение като JPEG при качество 85 пада до 200 до. Тази разлика идва от дискретното косинусово преобразуване в сърцето на JPEG, което работи на блокове от 8x8 пиксела, отхвърля високочестотния детайл, към който човешката зрителна система е най-малко чувствителна, и кодира оставащите коефициенти компактно. Резултатът е много по-малък файл за всяко изображение с непрекъсната тонова вариация, което по същество е всяка снимка. Гаранцията на PNG за без загуба е ценна за графики и работни файлове, но е грешният контейнер за снимки, насочени към споделяне.
Прозрачността и алфа каналът
PNG поддържа пълен 8-битов поддръжка на прозрачност, тоест всеки пиксел може да бъде навсякъде от напълно прозрачен до напълно непрозрачен. JPG изобщо не дефинира алфа информация, тъй като контейнерът му няма поле за прозрачност на отделен пиксел. Когато графичният двигател на платформата записва наново PNG като JPEG, той наслагва поддръжка на прозрачноста върху цвят на фона преди стъпката на запис. Фонът по подразбиране е бял, затова прозрачните области в PNG изглеждат бели в получения JPG. Ключовото е, че никой инструмент не може да направи прозрачен JPG, защото форматът не поддържа понятието. Ако запазването на изрязването има значение, отговорът е WebP или да запазите PNG. RoundCut избира бялото за цвят на изравняване, тъй като то съвпада с фона на повечето документи и продуктови обяви.
Измерена производителност на записа
Измерено на Chrome 148, настолен Linux, чрез пътя за запис в JPEG на платформата. Изображение 400x300 (0,12 MP) се записва за около 10 до 15 милисекунди. Изображение 1024x768 (0,78 MP) се записва за около 13 до 20 милисекунди. Изображение 3840x2160 (8 MP) се записва за около 1,4 секунди. Изображение 8000x6000 (48 MP) се записва за около 1,5 секунди. Записът в JPEG в браузъра е значително по-бърз от записа в PNG за същото изображение и далеч по-бърз от AVIF, който се нуждае от отделен модул и може да отнеме 25 секунди при 48 MP дори на настолен Chrome. Това предимство в скоростта прави PNG в JPG един от най-бързите пътища за преобразуване в това семейство, без допълнителен разход за изтегляне, тъй като записът в JPEG е вграден във всеки браузър.
Обработка на EXIF и метаданни
Конвейерът за повторен запис изчиства метаданните EXIF, IPTC и XMP от изходния JPG във всеки браузър. Това означава, че координатите на местоположение, моделът на камерата, датата на заснемане, бележката за авторски права и всякакви потребителски полета в изходния PNG се премахват. Цветовите профили ICC следват различен път, при който Chrome и Safari запазват профила sRGB ICC в изхода, докато Firefox го изчиства напълно. Практическият резултат е, че преобразуваният JPG е sRGB безопасен във всички браузъри, но ако вашият PNG е бил маркиран с профил с широка гама като Display-P3 или Adobe RGB, тази маркировка не оцелява във Firefox. Ако запазването на пълни метаданни е изискване на работния ви процес, редактирайте ги със специален инструмент след преобразуването. За обичайна уеб и споделяща употреба премахването на метаданни е полезно, тъй като подрязва малко файла и маха GPS данните от снимките.
Кога артефактите на JPG са видими
Компресията на JPEG работи на блокове от 8x8 пиксела. Когато изходното изображение съдържа твърд преход между два много различни цвята в рамките на един блок, стъпката на компресия на JPEG приближава този преход с ограничени честотни коефициенти. Резултатът са пръстеновидни ореоли, ореол от по-светли или по-тъмни пиксели около ръба. При снимките това е невидимо, защото ръбовете никога не са идеално остри и реалните снимки носят микровариация, която съвпада добре с това приближение. При екранни снимки, лога, елементи на интерфейс с твърди граници, текст или съседни блокове плътен цвят ореолите се виждат ясно при всяка настройка за качество, защото тези елементи са точно видът сигнал, който алгоритъмът обработва зле. Съветът е прост, не преобразувайте екранни снимки, лога или изображения с много текст в JPG. Дръжте ги като PNG или използвайте WebP за по-малък файл, който напълно избягва проблема.
Поверителност на практика
Къде се случва преобразуването зависи от броя файлове. За едно изображение никакви данни не напускат браузъра и това е проверимо в реално време. Списъкът остава празен по време на кодирането. За два или повече файла RoundCut ги изпраща на нашия сървър, който преобразува, опакова резултата и връща връзка за изтегляне. Тази връзка и преобразуваните файлове се изтриват за около 2 часа. Пътят на едно изображение тече изцяло на устройството ви, извън мрежата, докато партидният път го разменя за удобството да преобразувате много файлове наведнъж. За изображения с чувствително съдържание, като снимка на екрана на личен документ или снимка с данни за местоположение, преобразуването едно по едно държи всичко локално.