2011-09-02 66 views
4

我正在創建一個應用程序,將圖像上傳到服務器。它必須在XML上發送字節數組。如何將字節數組轉換爲NSString?UIImage字節數組

謝謝!

回答

6

您可以將UIImage轉換爲NSData對象,然後從那裏提取字節數組。下面是一些示例代碼:

UIImage *image = [UIImage imageNamed:@"image.png"]; 
NSString *byteArray = [UIImagePNGRepresentation(image) base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength]; 

如果使用一個PNG圖像可以使用UIImagePNGRepresentation功能如上圖所示,或者如果使用的是JPEG圖像,則可以使用UIImageJPEGRepresentation功能。文檔可以使用UIImage Class Reference

+0

這對我很有幫助。謝謝你,蘇哈爾你的帖子。 – Patricia

0

NSData *data = UIImagePNGRepresentation(image);可以圖像轉換成數據,現在通過使用getBytes:length:getBytes:range:

4

下面是一個簡單的功能,適用於iOS從UIImage的轉換爲unsigned char *字節數組轉換DAT到字節上 - >

+ (unsigned char*)UIImageToByteArray:(UIImage*)image; { 

    unsigned char *imageData = (unsigned char*)(malloc(4*image.size.width*image.size.height)); 

    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); 

    CGImageRef imageRef = [image CGImage]; 
    CGContextRef bitmap = CGBitmapContextCreate(imageData, 
               image.size.width, 
               image.size.height, 
               8, 
               image.size.width*4, 
               colorSpace, 
               kCGBitmapByteOrder32Little | kCGImageAlphaPremultipliedFirst); 

    CGContextDrawImage(bitmap, CGRectMake(0, 0, image.size.width, image.size.height), imageRef); 

    CGContextRelease(bitmap); 
    CGColorSpaceRelease(colorSpace); 

    return imageData; 
}