0

我正在尝试将图像的编码字节转换为base64格式并发送到rest webservice。在服务内部,我想对其进行解码并将其转换回图像并希望将图像保存在我的本地路径中。它在解码过程中失败。我不知道逻辑是否正确。需要一些指导

    @POST
    @Path("/imageupload")
    @Produces("text/html")
    @Consumes(MediaType.MULTIPART_FORM_DATA)
     public String execute(@FormDataParam("image") String inputfile) throws Exception
    {

            System.out.println("entered into service");
        BASE64Decoder decoder = new BASE64Decoder();
        ByteBuffer img=decoder.decodeBufferToByteBuffer(inputfile); 
        System.out.println();
            File outputfile = new File("D:\\TEST\\test.png");
                ImageIO.write(img, "png", outputfile);

逻辑是:

Step 1: get the byte array as string inside the service.
Step 2: decode it 
Step 3: write the byte into file with png format
4

1 回答 1

1

如果您获得正确编码的图像并且您确定它是 png,我会这样做。

BASE64Decoder decoder = new BASE64Decoder();
byte[] decodedImageBytes = decoder.decodeBuffer(inputfile); 
final FileOutputStream out = new FileOutputStream(new File("D:\\TEST\\test.png"));
out.write(decodedImageBytes);
out.close();

PS 确保您收到图像作为编码字符串。

于 2013-04-17T07:14:08.713 回答