gpt4 book ai didi

jquery - 动态添加图像到 Canvas

转载 作者:技术小花猫 更新时间:2023-10-29 12:36:55 27 4
gpt4 key购买 nike

大家好。

我想知道是否有任何方法可以将图像从用户计算机动态添加到 Canvas 。

例如我有:

<canvas id="canvas"></canvas>
<input type="file" id="image-chooser">

如果用户选择带有输入的图像,它会被添加到 Canvas 中。

请告诉我任何可遵循的路径。

谢谢!

最佳答案

为此,您应该熟悉 HTML5 Canvas API 和 File API。当然,此功能在仅支持两种 HTML5 API 的浏览器中可用。

执行此操作的过程是:

  1. 向文件输入元素发送一个 change 事件。
  2. 使用FileReader 从事件处理程序获取上传的文件并获取数据URL对象。
  3. 使用数据 URL 创建一个 img 元素并将其绘制在 Canvas 上。

我做了一个简单的example在 jsfiddle 上。代码如下所示:

<canvas id="canvas"></canvas>
<input type="file" id="file-input">
<script>
$(function() {
$('#file-input').change(function(e) {
var file = e.target.files[0],
imageType = /image.*/;

if (!file.type.match(imageType))
return;

var reader = new FileReader();
reader.onload = fileOnload;
reader.readAsDataURL(file);
});

function fileOnload(e) {
var $img = $('<img>', { src: e.target.result });
$img.load(function() {
var canvas = $('#canvas')[0];
var context = canvas.getContext('2d');

canvas.width = this.naturalWidth;
canvas.height = this.naturalHeight;
context.drawImage(this, 0, 0);
});
}
});
</script>

有很多关于文件 API 的好教程,例如 thisthis .

关于jquery - 动态添加图像到 Canvas ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6944382/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com