kCGImageStatusUnknownType при вызове CGImageSourceCreateWithDataProvider из UIGraphicsGetImageFromCurrentImageContext
Я пытаюсь создать CGImageSourceRef из CGDataProviderRef. CGDataProviderRef происходит из UIImage, который был создан с помощью UIGraphicsGetImageFromCurrentImageContext. Когда я делаю это и проверяю статус моего источника изображения, он возвращает kCGImageStatusUnknownType.
Я попытался дать ему подсказку с kCGImageSourceTypeIdentifierHint, но безрезультатно.
Кто-нибудь знает, как я могу создать этот CGImageSource?
Спасибо!
1 ответ
Вы сообщаете источнику, что передаете ему данные PNG, но это не так. Поставщик данных, который вы получаете от CGImageGetDataProvider
Функция предоставляет необработанные данные пикселей, а не данные в каком-то внешнем формате.
Целью CGImageSource является декодирование данных в некотором внешнем формате (например, PNG) в CGImages. Он не может обрабатывать данные пикселей; когда у вас есть данные пикселей, вы можете просто создать CGImage из него напрямую. Конечно, учитывая, что у вас уже есть окончательное изображение, я не уверен, почему вы пытаетесь создать его снова из каких-либо данных вообще.
Если вы хотите сгенерировать некоторые внешние данные для последующей загрузки (например, после выпуска этого изображения, возможно, в другом процессе) с помощью CGImageSource, используйте CGImageDestination.