kCGImageStatusUnknownType при вызове CGImageSourceCreateWithDataProvider из UIGraphicsGetImageFromCurrentImageContext

Я пытаюсь создать CGImageSourceRef из CGDataProviderRef. CGDataProviderRef происходит из UIImage, который был создан с помощью UIGraphicsGetImageFromCurrentImageContext. Когда я делаю это и проверяю статус моего источника изображения, он возвращает kCGImageStatusUnknownType.

Я попытался дать ему подсказку с kCGImageSourceTypeIdentifierHint, но безрезультатно.

Кто-нибудь знает, как я могу создать этот CGImageSource?

Спасибо!

1 ответ

Решение

Вы сообщаете источнику, что передаете ему данные PNG, но это не так. Поставщик данных, который вы получаете от CGImageGetDataProvider Функция предоставляет необработанные данные пикселей, а не данные в каком-то внешнем формате.

Целью CGImageSource является декодирование данных в некотором внешнем формате (например, PNG) в CGImages. Он не может обрабатывать данные пикселей; когда у вас есть данные пикселей, вы можете просто создать CGImage из него напрямую. Конечно, учитывая, что у вас уже есть окончательное изображение, я не уверен, почему вы пытаетесь создать его снова из каких-либо данных вообще.

Если вы хотите сгенерировать некоторые внешние данные для последующей загрузки (например, после выпуска этого изображения, возможно, в другом процессе) с помощью CGImageSource, используйте CGImageDestination.

Другие вопросы по тегам