精华内容
下载资源
问答
  • I am trying to resize an image and get back the base64 string representation using canvas.toDataUrl().My code is as follows (see below). My issue is that every time when I first initiate it, it return...

    I am trying to resize an image and get back the base64 string representation using canvas.toDataUrl().

    My code is as follows (see below). My issue is that every time when I first initiate it, it returns 'data:,'.

    Then when I redo the re-sizing (calling with button), then it works fine and it returns me a nonempty base64 string. What is going on?

    function drawAndResizeFunction(images)

    var qDraw = $q.defer();

    // 1

    drawCanvasWrapper().then(function(canvasData){

    qDraw.resolve(canvasData)

    });

    // 2

    function drawCanvasWrapper() {

    var pResults = images.map(function (imageObj) {

    //return drawCanvassIter(imageObj.tempURL); // tempUrl

    return resizeIter(imageObj.tempURL).then(function(result){

    console.log("resized", result) // *** RETURNS data:, in first attempt

    return result;

    })

    });

    return $q.all(pResults);

    };

    // 3inval

    // returns canvasdata

    function resizeIter(nativeURL) {

    console.log("resizeIter")

    var qResize = $q.defer();

    var canvas = document.getElementById("resizecanvas");

    var ctx = canvas.getContext("2d");

    var img = new Image();

    img.src = nativeURL;

    var newScales = resizeDimensions(img.width, img.height)

    var iw =canvas.width =img.width =newScales.iw;

    var ih =canvas.height =img.height =newScales.ih;

    img.onload = function () {

    // --> 4

    ctx.drawImage(img, 0, 0, iw, ih);

    $timeout(function(){

    qResize.resolve(canvas.toDataURL("image/jpeg"));

    }, 200)

    };

    return qResize.promise;

    //

    //

    function resizeDimensions(iw, ih) {

    var scaleFactor = 1;

    var targetSize = 800;

    if (iw > targetSize || ih > targetSize) {

    if(iw > ih) {

    scaleFactor = targetSize/iw;

    } else {

    scaleFactor = targetSize/ih;

    }

    }

    var iwAdj = Math.floor(iw*scaleFactor);

    var ihAdj = Math.floor(ih*scaleFactor);

    return {

    ih: ihAdj, iw: iwAdj

    }

    };

    };

    return qDraw.promise;

    }; // done

    解决方案

    The Cause

    The reason is that the canvas has invalid size:

    [...] The one exception to this is if the canvas has either no height or no

    width, in which case the result might simply be "data:,".

    Invalid size is including anything < 1.

    When an image element doesn't have data loaded the width and height properties are 0 by default until the image has been fully loaded and decoded into a bitmap, at which time triggers the onload handler:

    var img = new Image();

    document.write("w: " + img.width + " h: " + img.height);

    The Solution

    Make sure the image has loaded before reading any size from it (simplified example, adopt as seen fit for your code):

    var img = new Image();

    var w, h;

    img.onload = function() {

    w = this.width; // here we can extract image size

    h = this.height;

    // set canvas size here as well before drawing the image in

    // continue you code from here using f.ex. a callback

    document.write("w: " + w + " h: " + h);

    };

    img.src = "http://i.imgur.com/eekEotAb.jpg"; // set src last

    展开全文
  • 主要给大家介绍了关于利用canvas中toDataURL()将图片转为dataURL(base64)的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
  • 如何上传 canvas 的 toDataURL 中的内容

    千次阅读 2015-01-27 14:21:09
    经常需要在 web 前端生成图片然后上传到服务器上,在前端生成自定义图片可以使用 html5 中的 canvas ,然后使用 canvas 的 toDataURL 获得图片内容数据。... 服务器端 java  响应代码中需要定义一

    经常需要在 web 前端生成图片然后上传到服务器上,在前端生成自定义图片可以使用 html5 中的 canvas ,然后使用 canvas 的 toDataURL 获得图片内容数据。但如果要上传该图片内容,因为使用字符串形式提交有长度限制, 所以还需要将这些字符串形式的内容转为二进制内容的 Blob 对象,下面分为两部分来说明:

      1. 服务器端 java

           响应代码中需要定义一个 File 类型的变量,设为           

     File myfile

      2. web 客户端 javascript

            1) 使用 canvas 生成图片内容

                   var dataURL = canvas.toDataURL("image/jgp");

            2) 去除 data URL 中的头部说明

                  var img64 = dataURL.replace(/^data:image\/(png|jpg);base64,/,"")

            3) 使用函数 atob 将字符串形式的内容转为二进制形式的数据

                 var binaryImg = atob(img64);

            4) 创建 ArrayBuffer 并使用 Uint8 的方式给它赋值(ArrayBuffer 的使用方式有点怪异)

                var arraybuffer = new ArrayBuffer(binaryImg.length);

                var uint8 = new Uint8Array(arraybuffer);

                for (var i=0; i<length; i++){

                      uint8[i] = binaryImg.charCodeAt(i);

                }

            5) 使用 ArrayBuffer 对象生成  Blob

                blob = new Blob([arraybuffer);

            6) 构造 Formdata,准备上传 Blob

                var form = new Formdata();

            7) 将 Blob 对象加入 form data 中,注意属性的名称与 server 端的变量名称一致

                 form.append("myfile", blob);

            8) 上传 form

               var req = new XMLHttpRequest();

                req.open("POST", yourServerURL);

                req.send(form);


            到此,即可将 canvas 生成的 dataURL 内容上传到服务器端,服务器端只需要将收到内容形成 jpg 文件写盘即可

    展开全文
  • Uncaught DOMException: Failed to execute ‘toDataURL’ on ‘HTMLCanvasElement’: Tainted canvases may not be exported. 关键词 canvas.toDataURL() crossOrigin Access-Control-Allow-Origin 前言 最近在...
  • html2canvas 返回的toDataURL()数据为 data:,的解决方法 我在使用html2canvas的使用, 发现toDataURL() 返回的数据为data:, 而且将数据设置为img的src属性,图片也不能正常显示,我尝试了很多方法,也没有解决出来,...

    html2canvas 返回的toDataURL()数据为 data:,的解决方法

    我在使用html2canvas的使用, 发现toDataURL() 返回的数据为data:, 而且将数据设置为img的src属性,图片也不能正常显示,我尝试了很多方法,也没有解决出来,经过我不断的百度+自己尝试,终于解决了这个问题。

    代码:

    在这里插入图片描述

    这段代码是没有任何问题的,标准html2canvas的demod代码,但就是无法正常将图片previewImg 渲染出来,dataURL 我打印的结果为 data:,
    错误的原因是,这个 要截图的原dom元素this.$refs.imageTofile没有设置宽高,
    在这里插入图片描述

    我设置了宽高:

    在这里插入图片描述
    就完美解决问题。

    原因总结是,要绘制原图的html元素必须要显示出现, 必要设置width,height属性, 或不能将display设为none, 否则打印的canvas对象就是一个空对象,那它返回的 toDataURL()就为空 data:,

    我的回答解决了你的实际问题,就请给我一个赞,谢谢。

    展开全文
  • canvas.toDataURL() dataURL转化blob 失败

    千次阅读 2016-09-29 19:35:01
    <pre name="code" class="java"> var img = new Image(); img.crossOrigin="anonymous"; img.src='img/ben.png'; img.onload=function(){ ctx.globalCompositeOperation="destination-over";//source-over ctx...
    1、
           <pre name="code" class="java">            var img = new Image();
                img.crossOrigin="anonymous";
                img.src='img/ben.png';
                  img.οnlοad=function(){
                  ctx.globalCompositeOperation="destination-over";//source-over
                  ctx.drawImage(img,0,0,1024,512);
              }

    
    
    var dataURL = canvas.toDataURL('image/png');
    
           var blob = dataURLtoBlob(dataURL);
     这里切记

    img.src='img/ben.png';

    所引用的图片一定要是png的,和'image/png" 对应起来!

    展开全文
  • 本文介绍了Canvas引入跨域的图片导致toDataURL()报错的问题的解决,分享给大家,具体如下: 【场景】 用户打开网页,则请求腾讯COS(图片服务器)上的图片js代码。使用canvas绘图。 然后,用户可以重新选择图片...
  • 【场景】 用户打开网页,则请求腾讯COS(图片服务器)上的图片。使用canvas绘图。 然后,用户可以重新选择图片、裁剪...Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be expo...
  • var imgData = canvas.toDataURL('png');//将图片转换为png类型的流 var _fixType = function (type) { type = type.toLowerCase().replace(/jpg/i, 'jpeg'); var r = type.match(/png|jpeg|bmp|gif/)[0]; ...
  • 我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料...注:原文来至 《 java-pdf转word 》 一: java Pdf 文字 转 Word 废话不说,直接上图 很简单的用法: 1、new个PD...
  • 于是你开始鼓捣img图片转base64的方法,同时还参考各路资料,避免踩下canvas调用toDataURL时的跨域问题。 可是结果在本地开发环境调试时却啪啪打脸,这熟悉的描述,是跨域的味道。 vue项目中,我们一般通过proxy...
  • java中导出报告(word文档) 实现思路 通过java调用浏览器驱动执行js方法得到base64字符串图片,然后将base64字符串转成图片。 1.准备导出echarts所用到的工具 1.导入jar包 compile group: 'org.seleniumhq....
  • java上传文件到共享文件夹

    千次阅读 2017-02-22 16:29:07
    今天做到一个需求 是要用Java把文件上传到共享文件夹 下面是一个例子 以后备用注:用到一个jar包 jcifs-1.3.14.jar import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; ...
  • 一、js部分 function sendImg(){ var canvas=document.querySelector("canvas");... document.getElementById('pic').src=canvas.toDataURL('image/png'); //添加到html中 //var pic = document.
  • JAVA生成二维码--最简

    2021-01-19 09:51:47
    这里写自定义目录标题JAVA生成二维码--最简引入jar添加util简单调用前端下载二维码图片 JAVA生成二维码–最简 java生成二维码 输出流到浏览器 不在本地生成文件 引入jar <!-- 生成二维码 zxing.core.version=...
  • Html5 canvas生成图片,通过java进行保存

    千次阅读 热门讨论 2016-08-02 16:52:43
    找到canvas对象,通过canvas对象的toDataURL获取图片信息var canvas = document.getElementById("vjs-key-frame"); var dataURL = canvas.toDataURL("image/png");得到的图片信息如: data:image/png;base64,iVBORw...
  • The final result is viewed in a canvas so to send it to the server I'm using toDataURL. The backend server is a NodeJS server which then needs to make a REST call to a Java server which will create ...
  • I am composing an image in a canvas, I get the base64 image data by using canvas.toDataURL('png') and trimming the additional information.var dataUrl = canvas.toDataURL('png');var escapedBase64Data = ...
  • // retrieve output img in base64 format console.log((canvas).toDataURL()); } It takes a file (File) from a HTML input as parameter. Any help would be appreciated, thank you. 解决方案 you get a Base-...
  • java实现rstp格式转换使用ffmpeg实现linux命令第一步安装node.js和ffmpeg第二步搭建node.js启动websocket接收服务第三步java实现(启动并挂起转换rtsp流) 第一步安装node.js和ffmpeg 安装可以参考网上的这里不一一...
  • 注册百度AI开放平台账号,地址https://ai.baidu.com/ 创建自己的应用,并下载Java的SDK
  • Can you serialize/deserialize a canvas object in ...解决方案Besides the getImageData method, you can use canvas.toDataURL() to get an data-URL-encoded PNG. If you need to serialize to a string, it...
  • java后台方式: public class HtmlToPdf { private final static String DEST = "C:\\80afa41a3bfc474cbf1ac8b5bc1d.pdf"; //生成pdf的路径 private final static String SRC = "D:\\3b33a68bbf52417aac...
  • toDataURL" rel="nofollow">https://github.com/sampula/SVG.toDataURL</a> but it does not support foreignObject. <p>The only reason I want to be able to encode the foreignObject as to base64 is because...
  • java webApp异步上传图片

    千次阅读 2016-11-03 15:50:40
    java webApp上传图片本文包含以下几个问题:1.图片上传; 2.图片上传预览; 3.上传图片更改地址异步添加到数据库; 主要内容 本示例主要采用纯HTML前端和JavaScript代码作工具,查询有关demo其实现图片上传的...
  • import java.io.FileInputStream;  import java.io.FileOutputStream;  import java.io.IOException;  import java.io.InputStream;  import java.io.OutputStream;    import sun.misc.BASE64...
  • java 图片转换工具

    2017-11-15 16:12:00
    package com.sicdt.sicsign.web.utils; import java.awt.Graphics2D; import java.awt.image.BufferedImage;...import java.io.ByteArrayInputStream;...import java.io.ByteArrayOutputStream;...import java....
  • java web原生的实现人脸识别登录功能
  • 百度AI开放平台——简易人脸识别java版准备工作流程:项目结构和代码:最终效果:注: 准备工作 1、百度AI开发平台账号和人脸识别相关功能 2、一张人脸照片 流程: 1、页面调用摄像头拍照获取当前使用者照片,传入...
  • Java 生成二维码并实现展现和下载 防止自己忘了怎么用,记录一下 一、前端 接受后端返回的二维码需要用标签接收 例如: <img style="width: 100%;height: 100%" src="后端请求路径"> 下载 function ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,206
精华内容 482
关键字:

javatodataurl

java 订阅