2014-02-15 92 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類。 –

相關問題