2012-04-16 89 views
0

我正在使用一個API,它給了我一個圖像,如下例所示。我不確定如何將這些數值轉換爲圖像。我以前沒見過這個。來自陣列的UIImage

有誰知道我可以如何將下面的值數組放入UIImage中?

[255,216,255,224,0,16,74,70,73,70,0,1,1,1,0,96,...]

+0

如果是公共API,則提及該API名稱,以便有人給你正確的方向。或者提及API發送圖像時使用哪種編碼方法。 – AJPatel 2012-04-16 05:52:51

+0

很抱歉,我無法提供更多信息,但該API不公開。我的希望是有人看到過以這種方式表現出來的形象。 – simonbs 2012-04-16 05:56:04

+0

它看起來像你在響應中獲取NSData,你有沒有嘗試 - [UIImage imageWithData:imageData]; – rishi 2012-04-16 06:02:05

回答

1

這看起來像直像素緩衝區的數據,所以你將不得不猜測格式(可能是,RGBA?)和圖像尺寸(希望它的固定/猜測的/納入格式)。如果你猜對了,你應該可以用CGDataProviderCreateWithData創建一個CIImage;

CGDataProviderRef provider = CGDataProviderCreateWithData(NULL, buffer, bufferLength, NULL); 
//a reasonable guess 
CGColorSpaceRef colorSpaceRef = CGColorSpaceCreateDeviceRGB(); 
int bitsPerComponent = 8; 
int bitsPerPixel = 32; 
int bytesPerRow = 4 * width; 

CGImageRef imageRef = CGImageCreate(width, height, bitsPerComponent, bitsPerPixel, bytesPerRow, colorSpaceRef, kCGBitmapByteOrderDefault, provider, NULL, NO, kCGRenderingIntentDefault); 
UIImage *newUIImage = [UIImage imageWithCGImage:imageRef]; 
CGImageRelease(imageRef); 
CGDataProviderRelease(provider); 
+0

我認爲你是對的。我試圖創建一個方法,我通過'NSArray'和圖像的大小。然後該方法返回'UIImage'。我不知道如何處理'NSArray'。你能告訴我如何將它與你發佈的代碼一起使用嗎? – simonbs 2012-04-16 10:46:45

+0

下面是一個上面的緩衝區創建包括一個非常完整的例子:http://stackoverflow.com/questions/1579631/converting-rgb-data-into-a-bitmap-in-objective-c-cocoa – 2012-04-17 02:21:50