Вхід Реєстрація
Реклама
Ваше рекламне місце
Забронюйте цей слот без конкуренції на обраний період.
Купити рекламу →
Логотип телеграм спільноти - BW Swift
Додано 06 січ 2025

BW Swift

@bwswift
Кількість підписників: 1 749
Фото: 1,710
Відео: 176
Посилання: 1,590
Опис:
Канал створений для навчання програмування на swift та розробці програм під iOS. Мета проекту - допомогти студентам пройти шлях від розробника-початківця до оплачуваного фахівця. Тут я публікую актуальні та цікаві статті щодо iOS розробки. Адмін: @bws2007
Джерело

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

Логотип телеграм спільноти - BW Swift BW Swift @bwswift
908 Охват/переглядів 2026-04-24 11:01 Повідомлення №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