在iOS7中编码UIImage并用Java解码它(Base64)

时间:2014-02-15 19:49:30

标签: java ios swing uiimage

我正在尝试将UIImage(取自iPhone的相机)发送到Java Server并将其显示在JFrame中。

它可能与Encoding Option有关,因为Xcode和Eclipse中的String略有不同。恩。 xCode字符串的空格为“+”,但在Eclipse中,它的空格为“”。

在Objective-C

UIImage *image = info[UIImagePickerControllerEditedImage];
NSData *imageData = UIImagePNGRepresentation([temp objectForKey:@"photo"]);
NSString *base64StringOfImage = [imageData base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];

然后我将这个NSString在json中发送到Java

在Java中

byte[] imageBytes = Base64.decodeBase64(jsonPhoto.getString("photo"));
BufferedImage img = ImageIO.read(new ByteArrayInputStream(imageBytes));

我在BufferedImage img行上遇到此错误:

javax.imageio.IIOException: Error reading PNG image data

如果有人能告诉我如何解决这个问题,那就太棒了。

1 个答案:

答案 0 :(得分:4)

我明白了。

byte[] imageBytes = Base64.decodeBase64(jsonPhoto.getString("photo").replace(' ', '+'));