洗洗脚泡泡澡 2016-05-17 03:12 采纳率: 40.9%
浏览 2919
已采纳

canvers转化base64,然后后台解码生成图片问题

直接上代码了,

  var img_this=new Image();  
                img_this.src=$('#preview').attr('src');  
                var width = img_this.width,height = img_this.height;  
                var scale = width / height;  
                width1 = 300;  
                height1 = parseInt(width1 / scale);  
                var canvas = $("#cans");  
                canvas[0].width = width1; canvas[0].height = height1;  
                var cropStr =canvas[0].toDataURL("image/jpeg");
                alert(cropStr);

这是生成的base64的字符串,

    public boolean strtoimg(String imgStr){
          if (imgStr == null){ // 图像数据为空
                return false;
            }
            BASE64Decoder decoder = new BASE64Decoder();
            try {
                // Base64解码
                byte[] bytes = decoder.decodeBuffer(imgStr);
                for (int i = 0; i < bytes.length; ++i) {
                    if (bytes[i] < 0) {// 调整异常数据
                        bytes[i] += 256;
                    }
                }
                // 生成jpeg图片
                String path = "d:555.jpg";
                OutputStream out = new FileOutputStream(path);
                out.write(bytes);
                out.flush();
                out.close();
                return true;
            } catch (Exception e) {
                return false;
            }
    } 

这个是生成图片方法,哪里有不对的吗?生成的图片是一片黑。
在线等~

  • 写回答

1条回答

  • Go 旅城通票 2016-05-17 04:02
    关注

    var cropStr =canvas[0].toDataURL("image/jpeg");

    这个cropStr你处理过没有?是包含“data:image/jpeg;base64”这种内容,要去掉这些内容,直接发送后面base64数据。

    cropStr=cropStr.replace('data:image/jpeg;base64','');

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?