UIImage到字节数组

时间:2011-09-02 20:59:13

标签: iphone sdk nsstring uiimage bytearray

我正在创建一个将图片上传到服务器的应用。它必须在XML上发送字节数组。如何将字节数组转换为NSString?

谢谢!

3 个答案:

答案 0 :(得分:6)

您可以将UIImage转换为NSData对象,然后从那里提取字节数组。以下是一些示例代码:

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

如果您使用的是PNG图像,可以使用上面显示的UIImagePNGRepresentation功能,或者如果您使用的是JPEG图像,则可以使用UIImageJPEGRepresentation功能。文档可在UIImage Class Reference

上找到

答案 1 :(得分:4)

这是一个简单的iOS函数,可以将UIImage转换为unsigned char * byte array - >

+ (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;
}

答案 2 :(得分:0)

使用NSData *data = UIImagePNGRepresentation(image);您可以将图片转换为数据,现在可以使用getBytes:length:getBytes:range:

将dat转换为字节