今天我的任务是将字节数组转换为图像
首先我尝试将图像转换为字节数组: -
首先要将Image转换为Byte数组,我们要做的是将特定图像[UIImage
]转换为NSData
。然后我们将NSData
转换为Byte数组。在这里,我将给出示例代码,只需通过...
//Converting UIImage to NSData
UIImage *image = [UIImage imageNamed: @"photo-04.jpg"];
NSData *imageData = UIImagePNGRepresentation(image);
//Converting NSData to Byte array
NSUInteger len = [imageData length];
NSLog(@"Byte Lendata1 %lu",(unsigned long)len);
Byte *byteData = (Byte*)malloc(len);
memcpy(byteData, [imageData bytes], len);
我尝试将此字节转换为imageView
const unsigned char *bytes = [imageData bytes];
NSUInteger length = [imageData length];
NSMutableArray *byteArray = [NSMutableArray array];
for (NSUInteger i = 0; i < length; i++) {
[byteArray addObject:[NSNumber numberWithUnsignedChar:bytes[i]]];
}
NSDictionary *dictJson = [NSDictionary dictionaryWithObjectsAndKeys:
byteArray, @"photo",
nil];
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dictJson options:0 error:NULL];
NSLog(@"");
UIImage *image1 = [UIImage imageWithData:jsonData];
UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 100, 50)];
imgView.image=image1;
我有输出转换图像到字节数组但我想将字节数组转换为图像 所以请先帮助我谢谢。
答案 0 :(得分:4)
首先,您需要将字节转换为NSData
NSData *imageData = [NSData dataWithBytes:bytesData length:length];
然后,将数据转换回图像。
UIImage *image = [UIImage imageWithData:imageData];
我建议您在发生问题时首先搜索文档。
以下是全部:
UIImage *image = [UIImage imageNamed:@"RAC.png"];
NSData *imageData = UIImagePNGRepresentation(image);
// UIImageJPGRepresentation also work
NSInteger length = [imageData length];
Byte *byteData = (Byte*)malloc(length);
memcpy(byteData, [imageData bytes], length);
NSData *newData = [NSData dataWithBytes:byteData length:length];
UIImage *newImage = [UIImage imageWithData:newData];
UIImageView *imageView = [[UIImageView alloc] initWithImage:newImage];
imageView.frame = CGRectMake(50, 50, 100, 100);
[self.view addSubview:imageView];
答案 1 :(得分:1)
您使用错误的格式
表示数据您的图片格式为jpg
,并且您使用的是PNG
数据。
对于jpg
或jpeg
格式,您应使用UIImageJPEGRepresentation
NSData * UIImageJPEGRepresentation (
UIImage *image,
CGFloat compressionQuality
);
所需的陈述将是
NSData *imageData = UIImageJPEGRepresentation(image, 0.0f);// Set Compression quality to 0.0. You can change it.
对于png
格式,您应该使用UIImagePNGRepresentation
NSData * UIImagePNGRepresentation (
UIImage *image
);
所需的陈述将是
NSData *imageData = UIImagePNGRepresentation(image);
要将NSData
转换回UIImage
,请使用
UIImage *image = [UIImage imageWithData:imageData];
阅读APPLE DOCS。看图像操作