BW Swift | ️ Швидкий thumbnail через ImageIO: 3 прапорці, які реально важливіПара...

Logotipo de la comunidad de telegram -
2025-01-06

Número de suscriptores:
1746
Fotos:
1660 
Videos:
174 
Enlaces:
1580 
Categoría:
Tecnologías
Descripción:
Канал створений для навчання програмування на swift та розробці програм під iOS. Мета проекту - допомогти студентам пройти шлях від розробника-початківця до оплачуваного фахівця. Тут я публікую актуальні та цікаві статті щодо iOS розробки. Адмін: @bws2007

Canal BW Swift - @bwswift - №2485

🖼️ Швидкий thumbnail через ImageIO: 3 прапорці, які реально важливіПараметри CGImageSourceCreateThumbnailAtIndex ніби задокументовані, але які саме комбінації працюють без болю — ні. Ось що виявилось “золотою трійкою”:- kCGImageSourceCreateThumbnailFromImageAlwaysФормально можна й без нього, але тоді ловиш дивні логи помилок для JPEG/HEIC, коли система очікує embedded thumbnail, а його нема. Варіант FromImageIfAbsent не завжди ці логи прибирає.- kCGImageSourceCreateThumbnailWithTransformMust-have, якщо хочеш, щоб thumbnail поважав EXIF orientation (особливо JPEG). Без нього частина фоток буде боком/догори ногами.- kCGImageSourceThumbnailMaxPixelSizeМаксимальна сторона thumbnail; на виході картинка буде ≤ цього розміру. Результат: 12MP JPEG на macOS почав ресайзитись за ~26ms — це майже ×30 швидше за “наївний” підхід.І ще 2 неприємні реалії ImageIO:- API інколи ламається на різних файлах/версіях macOS → автору довелось зробити 4 різні реалізації ресайзера і фолбекати між ними.Інколи ImageIO кидає C++ exceptions. Якщо не ловити їх в Obj-C як @catch (...) (так, буквально три крапки), апка може впасти.- окремо від Brent Simmons: не юзайте CGImageSourceCreateImageAtIndex для indexed-color ICO (4-bit palette) — беріть CGImageSourceCreateThumbnailAtIndex, щоб обійти баг.BWSwift 📱 YouTube 📱 Patreon
908
26-04-24 11:01