我正在创建一个将图片上传到服务器的应用。它必须在XML上发送字节数组。如何将字节数组转换为NSString?
谢谢!
答案 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: