如何将使用图像服务提供的图像作为背景的画布元素转换为可下载图像
How do I turn a canvas element that uses an image served by ImageService as background to a downloadable image?
我正在编写一个应用程序,用户可以在其中上传图像,在其上绘制并保存结果。我正在尝试通过使用画布元素并使用上传的图像作为其背景来实现这一点。我正在通过图像服务检索图像。 下面是用于初始化画布的客户端代码:
var image = new Image();
image.src = "http://some.google.domain.com/foobar123";
var ctx = canvas.getContext('2d')
image.onload = function() {
ctx.drawImage(image, 0, 0);
};
现在用户可以在图像上绘制内容。
然后当用户想要保存图像时,我调用:
canvas.toDataURL("image/png")
这会在 Chrome 中出现此错误:
Error: SecurityError: DOM Exception 18.
"Error: An attempt was made to break through the security policy of the user agent."
我假设 Chrome 不喜欢它,因为该图像是从某个谷歌域提供的,该域与我的应用引擎应用程序的域不同。
有解决方法吗?
提前谢谢。
作为解决方法,我现在使用 BlobstoreService 而不是 ImageService 来提供图像数据。这种方法提供与我的应用来自同一网域的图片,但您将失去使用 Google 的静态图片服务基础架构的所有优势。
相关文章:
- 如何使用css动画/javascript使具有背景图像的元素出现
- 将包含SVG元素的HTML转换为图像文件
- 如何通过选择器元素将图像添加到javascript下拉警报消息中
- 如何缩放像图像一样的元素
- 在d3中向DOM元素添加了图像,但现在它赢得了't过渡
- 普通JS:使80%宽度元素100%IF包含一个图像
- 无法为HTML5中具有画布和图像的可拖动元素设置“拖动图像”
- 将href中的图像替换为其他元素中的图像
- 如何获取内部动态加载图像的元素的高度
- 如何使用THree.js和webGL将交互式图像或元素嵌入到全景图像查看器中
- 没有图像的元素上的CSS掩码
- 图像/DIV 元素切换全屏
- 获取包含图像的元素的 $.height() 当图像可能尚未加载时
- 如何将要附加图像的元素传递到image.onload()函数中
- 对于内部具有动画图像的元素,单击事件将丢失
- 如何覆盖一个没有白色背景图像的元素
- 如何使图像DOM元素响应
- 何时检索包含图像的元素的高度
- 简单的方法添加图像的元素上的onclick事件javascript
- 如何在jQuery中存储多个输入图像的元素