Зависит ли CGImageGetDataProvider от типа изображения?

#iphone #objective-c #macos #ipad

#iPhone #objective-c #macos #iPad

Вопрос:

Я использовал CGImageGetDataProvider и CGDataProviderCopyData , а затем получил указатель на данные. Первое изображение, которое я тестировал, было bmp, и этот метод отлично сработал. Однако я изменил свое изображение на JPG, потому что я прочитал что-то о поставщике данных, возможно, относящемся к типу изображения. Длина возвращаемых данных указывает на то, что она равна 4, когда это должно быть некоторое большое число, представляющее строки и столбцы изображения.

Что мне нужно, так это то, что я могу запросить у поставщика данных растровое изображение, чтобы я мог просматривать данные в несжатом виде?

Ответ №1:

Данные, которые вы получаете от поставщика данных, будут данными, которые использовались для создания изображения. Например, если изображение было создано с использованием CGImageCreateWithJPEGDataProvider , это были бы данные JPEG. Если вам нужны растровые данные, вам нужно будет создать растровое изображение, возможно, используя CGBitmapContextCreate , и нарисовать изображение в растровом изображении.

Комментарии:

1. В CGBitmapContextCreeate так много шагов. существует ли какой-либо прямой метод преобразования данных JPEG в растровое изображение. Было бы здорово, если бы я мог получить разницу между данными Bitmap и JPEG.

2. Нет, я не думаю, что есть какой-либо более простой способ.