Я хочу использовать функцию CGImageSourceCreateThumbnailAtIndex
для создания миниатюры с UIImage
. Все, что у меня есть, это UIImage
. Изображение представляет собой снимок на UIView
.Создание эскиза из UIImage с использованием CGImageSourceCreateThumbnailAtIndex
Пожалуйста, я не хочу использовать какой-либо другой способ создания эскиза, только тот, который использует CGImageSourceCreateThumbnailAtIndex
, потому что я хочу сравнить его производительность с другими методами, которые у меня уже есть.
Сказал, что это код, который у меня есть до сих пор.
У меня есть создать UIImage
категории с этим кодом:
- (UIImage *)createSquaredThumbnailWithWidth:(NSInteger)width {
CFDictionaryRef options = (__bridge CFDictionaryRef) @{
(id) kCGImageSourceCreateThumbnailWithTransform : @YES,
(id) kCGImageSourceCreateThumbnailFromImageAlways : @YES,
(id) kCGImageSourceThumbnailMaxPixelSize : @(width)
};
CGImageRef scaledImageRef = CGImageSourceCreateThumbnailAtIndex(????, 0, options);
UIImage* scaled = [UIImage imageWithCGImage:scaledImageRef];
CGImageRelease(scaledImageRef);
return scaled;
}
Моей проблема с этой линией:
CGImageRef scaledImageRef = CGImageSourceCreateThumbnailAtIndex(????, 0, options);
Первым параметром этой функции требующим CGImageSourceRef
, но, как я сказал, У меня только UIImage
, это изображение находится в памяти, а не на диске, и я не хочу сохранять его на диск, или производительность будет снижаться.
Как получить CGImageSourceRef
от UIImage
, который находится на памяти ???
насчет на память? все экземпляры изображений находятся в памяти. Используйте его, как сказал @Nirav D. –