Javascript 客户端 - 从网页上的现有图像创建新图像

标签 javascript image-manipulation

有没有办法在网络浏览器中使用 Javascript 将图像切割成图 block ?

我想让用户从网页上的图库中选择一张图片,然后将该图片剪切成 4 或 6 个新图 block ,然后将这些图 block 放在表格中,让用户为每个图 block 添加一些描述。

如我现在所见,我可以在用户选择图像和图 block 数量后从服务器重新加载图 block ,但如果可能的话我想跳过重新加载。

编辑:
关于 KP 关于浏览器级别支持的评论,如果可能的话,我希望有不需要 HTML5 支持的解决方案。

最佳答案

如果你正在处理现代浏览器,你可以用 Canvas 来做。参见 this tutorial并查看“切片”部分。基本上你可以使用

drawImage(图像, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight)

按照您喜欢的方式(基于 s 的参数) chop 原始图像,然后将该部分放置在 Canvas 中您想要的任何位置(基于 d 的参数) .如果你想保存一个切片,你可以使用 toDataUrl 方法来获取切片的 base64。 See this .

请记住,图像 src url 需要在加载 javascript 的域中,否则你会污染 Canvas 。您可以通过让服务器返回图像的 base64 表示来解决这个问题。

最后,大图像上的 toDataUrl 可能会“很慢”,因此请为此做好准备。

编辑——因为您不能依赖 Canvas ,所以您需要使用 SVG,更多浏览器支持更旧的 SVG。有像 Raphael.js 这样的库来帮助你。

关于Javascript 客户端 - 从网页上的现有图像创建新图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9811322/

相关文章:

javascript - 用于获取当前登录用户的 Keycloak JavaScript API

javascript - 谷歌浏览器中的 ERR_CACHE_READ_FAILURE

java - 2D ImagePlus 对象上的俯仰和偏航

image-manipulation - 我有一个1024x1024 png,我想将其拆分为64x64(256个相等的部分)

ruby - 使用 imagemagick 更改图像的颜色

batch-file - 如何使用 FFMPEG+Imagemagick 从图像/视频中提取有组织的调色板?

javascript - react .js : tutorial app not working

javascript - KnockoutJS - 选择下拉列表绑定(bind)不起作用

javascript - angular js中可选择的表格模式弹出窗口

image - Windows Phone 8,如何将图像转换为 .png?