【发布时间】:2017-03-27 17:40:53
【问题描述】:
我正在开发一个允许用户裁剪图像并为该图像选择边框的应用。 我想知道的是,是否可以通过Javascript将具有边框样式的图像转换为base64?
var img = new Image();
img.src = 'https://mdn.mozillademos.org/files/222/Canvas_createpattern.png';
var pat = canvasContext.createPattern(img,"repeat");
canvasContext.strokeStyle = pat;
canvasContext.lineWidth = 5;
canvasContext.strokeRect(-(this.rotatedOffset.x * exportZoom), -(this.rotatedOffset.y * exportZoom), canvas.width, canvas.height);
上面的代码只是给画布添加了一个黑色边框。
现在,我想做的是在画布上添加一个图像/图案作为边框。
更新:根据@K3N 的回答,我创建了一个带有裁剪图像的新画布并添加了图案边框。满足我的需求。
【问题讨论】:
-
绝对有可能。您可以将边框和图像绘制到画布上(您可能需要在考虑边框大小的情况下创建画布上下文),然后使用与 Cropit 类似的方法导出。
-
感谢您的回复。我的主要问题是想要将 css 边框图像添加到裁剪图像并将全部导出到 base64。我可以在画布上添加一个简单的边框,但我想添加更复杂的图像图案作为边框。我将如何做到这一点?我更新了我的问题。
-
在 CSS 中这样做是没有意义的。您将不得不模拟 CSS 样式(因为您不能直接从 DOM 元素或样式中保存位图)并仍然将其传输到画布(包含所有挑战),因此只需将边框直接添加到画布而不需要使用 CSS 大圆圈。
-
@k3n 感谢您的回复。如何将图像图案作为边框添加到画布?更新了我的问题。
标签: javascript css base64 border-image