gpt4 book ai didi

php - 裁剪本地镜像文件

转载 作者:可可西里 更新时间:2023-10-31 23:07:19 24 4
gpt4 key购买 nike

我有一个允许用户上传图片并裁剪的表单我已经弄清楚了它的流程

1.用户上传图片
2.服务器处理并返回给浏览器
3.用户裁剪并发送到服务器
4.Server进程并保存

还有其他方法可以实现吗?
也许使用 javascript 加载图像,然后裁剪它,然后发送到服务器进行处理。
有办法吗?

已编辑我希望避免将这些图像发送到服务器进行处理。
可能使用 FileReader 加载文件..
我没有用谷歌搜索它

最佳答案

您可以使用FileReader + Canvas读取本地文件,然后在不发送到服务器的情况下裁剪它。

这是一个展示如何做到这一点的演示。

<form><input type="file" id=f></form>
<canvas id=c width="600" height="600"></canvas>
<script>
var f = document.getElementById('f');
var canvas = document.getElementById('c');
var context = canvas.getContext('2d');
f.onchange = function() {
var file = this.files[0];
var reader = new FileReader();
reader.onload = function(evt) {
var img = new Image();
img.onload = function() {
context.drawImage(this, 0, 0, 100, 100, 0, 0, 100, 100);
var pngUrl = canvas.toDataURL();
//alert(pngUrl); // send this url to server to save the image
}
img.src = evt.target.result;
}
reader.readAsDataURL(file);
}
</script>

您还需要做的是使用 jquery jcrop 插件让用户选择裁剪区域,因为在这个演示中我只是硬编码裁剪左上角的 100x100 像素。

看起来你会想要使用 jcrops onSelect事件以获取裁剪区域的原点 + 宽度 + 高度,并将这些值提供给 context.drawImage

希望你能处理好剩下的事情,祝你好运

关于php - 裁剪本地镜像文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14025827/

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