1

我想通过 BlazeDS 将图像(图表的屏幕截图)从 Flex 传递到 Java。目标是将图像存储在服务器端。

这是我的 Flex 例程(单击按钮后调用):

protected function btn_clickHandler(event:MouseEvent):void
{
 var snapshot:ImageSnapshot = ImageSnapshot.captureImage(graphViewStack.selectedChild,);
 var balanceSheetImage:String = ImageSnapshot.encodeImageAsBase64(snapshot);
 //Testing the image
 var base64Dec:Base64Decoder = new Base64Decoder();
 base64Dec.decode(balanceSheetImage);
 generatedImage.load(base64Dec.toByteArray());
}

在“生成的图像”中,显示了图像,所以我假设这个例程有效。

现在我想用 Java 解码 balanceSheetImage。出于这个原因,我创建了以下 Java 代码。该值包含生成图像中的字符串,我从弹性代码中复制/粘贴了该字符串。

import sun.misc.BASE64Decoder;

public static int createPdf() throws IOException{
   String value= "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";
   BASE64Decoder decoder = new BASE64Decoder(); 
   byte[] imgBytes = decoder.decodeBuffer(value);        

   ByteArrayInputStream str = new ByteArrayInputStream(imgBytes);
   BufferedImage bufImg = ImageIO.read(str); 

   File imgOutFile = new File("newLabel.png");
   ImageIO.write(bufImg, "png", imgOutFile);  

   return -1;
}

不幸的是,这不起作用。特别是: BufferedImage 始终为空。有谁知道为什么会发生这种情况?

4

0 回答 0