用JavaScript将Canvas内容转化成图片的方法

上周我们花了半天时间开发下一个准备放进Mozilla Marketplace的应用。有一个应用现在非常的火热,那就是Instagram,Facebook花了100万美元收购了它。我们也想有100万美元装到口袋里,我决定开发一个Instagram风格的应用,这篇文章了我将介绍一下如何将一张图片拷贝到canvas里,以及反过来,如何将画布内容保存成图片格式。

使用JavaScript将图片拷贝进画布

要想将图片放入画布里,我们使用canvas元素的drawImage方法:

// Converts image to canvas; returns new canvas element
function convertImageToCanvas(image) {
    var canvas = document.createElement("canvas");
    canvas.width = image.width;
    canvas.height = image.height;
    canvas.getContext("2d").drawImage(image, 0, 0);

    return canvas;
}

这里的0, 0参数画布上的坐标点,图片将会拷贝到这个地方。

用JavaScript将画布保持成图片格式

如果你的画布上的作品已经完成,你可以用下面简单的方法将canvas数据转换成图片格式:

// Converts canvas to an image
function convertCanvasToImage(canvas) {
    var image = new Image();
    image.src = canvas.toDataURL("image/png");
    return image;
}

这段代码就能神奇的将canvas转变成PNG格式!

这些在图片和画布之间转换的技术可能比你想象的要简单的多。在以后的文章里,我会写一些将这些图片做不同滤镜处理的技术。

转载自 webhek

转载于:https://www.cnblogs.com/lodingzone/p/5177332.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将div转换canvas,可以使用HTML5 Canvas元素的API。您可以使用`html2canvas`库将HTML元素转换Canvas元素。该库将HTML元素转换Canvas元素,您可以使用这个Canvas元素来创建视频。 下面是一个示例代码: ```javascript //使用html2canvas库将div转换canvas html2canvas(document.querySelector("#yourDiv")).then(canvas => { //获取视频的宽度和高度 const width = canvas.width; const height = canvas.height; //创建一个新的canvas元素,用于渲染视频 const videoCanvas = document.createElement("canvas"); videoCanvas.width = width; videoCanvas.height = height; //将div转换canvas绘制到新的canvas中 const ctx = videoCanvas.getContext("2d"); ctx.drawImage(canvas, 0, 0, width, height); //将canvas转换为视频 const stream = videoCanvas.captureStream(); const mediaRecorder = new MediaRecorder(stream); const chunks = []; //开始录制 mediaRecorder.start(); //监听录制数据 mediaRecorder.ondataavailable = e => { chunks.push(e.data); }; //停止录制 mediaRecorder.onstop = () => { const blob = new Blob(chunks, { type: "video/webm" }); //将Blob转换为URL const url = URL.createObjectURL(blob); //在页面上显示视频 const video = document.createElement("video"); video.src = url; document.body.appendChild(video); }; setTimeout(() => { mediaRecorder.stop(); }, 5000); //录制5秒钟 }); ``` 这个代码将您指定的div元素转换Canvas元素,然后将Canvas元素转换为视频,并在页面上显示它。您可以根据需要更改代码来实现您的目标。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值