Login Sign Up
Advert
Your ad spot
Reserve this exclusive slot for the selected period.
Buy advertising →
Telegram community logo - BW Swift
Added 06 Jan 2025

BW Swift

@bwswift
Number of subscribers: 1 742
Photos: 1,710
Videos: 176
Links: 1,590
Description:
Канал створений для навчання програмування на swift та розробці програм під iOS. Мета проекту - допомогти студентам пройти шлях від розробника-початківця до оплачуваного фахівця. Тут я публікую актуальні та цікаві статті щодо iOS розробки. Адмін: @bws2007
Source

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

Telegram community logo - BW Swift BW Swift @bwswift
908 Views/Reach 2026-04-24 11:01 Message №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