问题描述
- 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; } }
这个是生成图片方法,哪里有不对的吗?生成的图片是一片黑。
在线等~
解决方案
base64 图片字符转换 加码解码
关于nsdata的压缩的问题base64,图片转字符串,图片的压缩的问题
解决方案二:
var cropStr =canvas[0].toDataURL("image/jpeg");
这个cropStr你处理过没有?是包含“data:image/jpeg;base64”这种内容,要去掉这些内容,直接发送后面base64数据。
cropStr=cropStr.replace('data:image/jpeg;base64','');
时间: 2024-09-08 10:43:12