2014-02-15 53 views
1

我试图将UIImage(从iPhone的相机中取出)发送到Java服务器并将其显示在JFrame中。在iOS7中对UIImage进行编码并使用Java进行解码(Base64)

它可能与编码选项有关,因为Xcode和Eclipse中的字符串稍有不同。恩。 xCode字符串对于空格具有“+”,但在Eclipse中对空格具有“”。

在Objective-C

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

然后我在JSON发送此的NSString的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 

如果有人能告诉我如何解决这个问题,那会很棒。

回答

4

我想通了。

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

我可以知道你在使用哪个Base64类吗?我在java 7中找不到Base64类。 –

相关问题