将画布的内容发送到Java服务器并将其另存为图像

NRa*_*Raf 8 javascript java canvas

好的,基本上我开发了一个简单的图像上传系统.用户选择本地图像(使用HTML5文件/ FileReader API),并且能够在确认结果之前裁剪它.

最终结果在画布中查看,以便将其发送到我正在使用toDataURL的服务器.后端服务器是NodeJS服务器,然后需要对Java服务器进行REST调用,Java服务器将根据数据创建映像文件并将其保存到磁盘.

toDataURL的结果采用以下形式:data:image/png; base64,ENCODED DATA.

我需要在Java服务器上将字符串转换为正确的二进制表示形式吗?

cop*_*opy 6

您需要移除data:image/png;base64,部件,基座64解码其余部分.


小智 5

import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.File;
import javax.imageio.ImageIO;
import javax.xml.bind.DatatypeConverter;

public class test {
    public static void main (String[] args){
     try{
            // remove data:image/png;base64, and then take rest sting
            String img64 = "64 base image data here";
        byte[] decodedBytes = DatatypeConverter.parseBase64Binary(img64 );
        BufferedImage bfi = ImageIO.read(new ByteArrayInputStream(decodedBytes));    
        File outputfile = new File("saved.png");
        ImageIO.write(bfi , "png", outputfile);
        bfi.flush();
     }catch(Exception e)
         {  
          //Implement exception code    
     }

    }
}
Run Code Online (Sandbox Code Playgroud)