HTML5画布生成器

HTML5画布生成器,html,canvas,Html,Canvas,是否有任何在线工具或软件可以导出为画布代码 例如,我拖动一些方框或圆圈,添加一些颜色,然后点击“导出”,我的绘图被导出为画布?画布是HTML元素,而不是文件的“类型”。将图形输出渲染到画布,而不是显式加载画布 您可以做的是导出为SVG(可缩放矢量图形)格式,然后将.SVG文件嵌入到HTML中 <embed src="filename.svg" type="image/svg+xml" /> 画布是HTML元素,不是文件的“类型”。将图形输出渲染到画布,而不是显式加载画布 您可以做的

是否有任何在线工具或软件可以导出为画布代码


例如,我拖动一些方框或圆圈,添加一些颜色,然后点击“导出”,我的绘图被导出为画布?

画布是HTML元素,而不是文件的“类型”。将图形输出渲染到画布,而不是显式加载画布

您可以做的是导出为SVG(可缩放矢量图形)格式,然后将.SVG文件嵌入到HTML中

<embed src="filename.svg" type="image/svg+xml" />

画布是HTML元素,不是文件的“类型”。将图形输出渲染到画布,而不是显式加载画布

您可以做的是导出为SVG(可缩放矢量图形)格式,然后将.SVG文件嵌入到HTML中

<embed src="filename.svg" type="image/svg+xml" />

画布是HTML元素,不是文件的“类型”。将图形输出渲染到画布,而不是显式加载画布

您可以做的是导出为SVG(可缩放矢量图形)格式,然后将.SVG文件嵌入到HTML中

<embed src="filename.svg" type="image/svg+xml" />

画布是HTML元素,不是文件的“类型”。将图形输出渲染到画布,而不是显式加载画布

您可以做的是导出为SVG(可缩放矢量图形)格式,然后将.SVG文件嵌入到HTML中

<embed src="filename.svg" type="image/svg+xml" />

画布代码基本上是用javascript编写的api。您最好将代码捆绑到一个函数中,并将文件另存为canvascode.js

function foo(context){
   // your canvas code
}

将其包含在html文件中…需要时,只需通过传递canvas上下文参数调用此函数。

canvas代码基本上是用javascript编写的api。您最好将代码捆绑到一个函数中,并将文件另存为canvascode.js

function foo(context){
   // your canvas code
}

将其包含在html文件中…需要时,只需通过传递canvas上下文参数调用此函数。

canvas代码基本上是用javascript编写的api。您最好将代码捆绑到一个函数中,并将文件另存为canvascode.js

function foo(context){
   // your canvas code
}

将其包含在html文件中…需要时,只需通过传递canvas上下文参数调用此函数。

canvas代码基本上是用javascript编写的api。您最好将代码捆绑到一个函数中,并将文件另存为canvascode.js

function foo(context){
   // your canvas code
}

将其包含在html文件中…需要时,只需通过传递canvas上下文参数调用此函数。

据我所知,没有任何工具可以做到这一点。但是你可以自己做

根据你的需要-

录音机 如果你想复制所有的动作,你可以用录音机-

为要使用的不同方法创建包装,并在将形状等拖动到画布上时记录其步骤。对于特殊操作(例如将现有对象移动到新位置),您需要为此创建自定义操作。但原则上你可以这样做:

var stack = [];

function myMoveTo(x, y) {
    ctx.moveTo(x, y);
    stack.push({op: 'moveto', x: x, y: y});
}

function myLineTo(x, y) {
    ctx.lineTo(x, y);
    stack.push({op: 'lineto', x: x, y: y});
}

... etc.
现在,您的
堆栈
数组包含您执行的所有操作,您可以简单地遍历它们并从中生成JavaScript代码(或SVG、重新绘制画布或将其转换为不同语言的脚本等等)

您的
code
变量现在包含JavaScript代码,您可以将其粘贴到另一个项目中,以复制使用画布绘制的图形

转换器 如果你不想复制每一个动作,你可以用一个转换器的方法来获取画布当前状态的“快照”(我想这是你真正想要的)-

您只需绘制并存储画布上的对象本身。您将需要创建和定义这些对象及其位置、大小、颜色等

然后,当点击“导出”按钮时,使用与上述类似的方法转换这些对象,但不是复制操作的每个步骤,而是将图形对象本身转换为当前状态:

/// object also stored in a stack but represents the graphics not the action
var myObject = {type:'line', x1:10, y1:20, x2:70, y2:100, color:'#f70'};
stack.push(myObject); 
当您迭代时:

...
case 'line';
    code += 'ctx.beginPath();\n';
    code += 'ctx.moveTo(' + o.x1 + ', ' + o.y1 + ');\n';
    code += 'ctx.lineTo(' + o.x2 + ', ' + o.y2 + ');\n';
    code += 'ctx.strokeStyle = "' + o.color + '";\n';
    code += 'ctx.stroke();\n';
...
转换为图像 如果你只是说“作为一个形象”,你会:

您可以将其用作图像标记的源或上载到服务器:

var img = new Image;
img.src = dataUri;
...

据我所知,没有任何工具可以做到这一点。但是你可以自己做

根据你的需要-

录音机 如果你想复制所有的动作,你可以用录音机-

为要使用的不同方法创建包装,并在将形状等拖动到画布上时记录其步骤。对于特殊操作(例如将现有对象移动到新位置),您需要为此创建自定义操作。但原则上你可以这样做:

var stack = [];

function myMoveTo(x, y) {
    ctx.moveTo(x, y);
    stack.push({op: 'moveto', x: x, y: y});
}

function myLineTo(x, y) {
    ctx.lineTo(x, y);
    stack.push({op: 'lineto', x: x, y: y});
}

... etc.
现在,您的
堆栈
数组包含您执行的所有操作,您可以简单地遍历它们并从中生成JavaScript代码(或SVG、重新绘制画布或将其转换为不同语言的脚本等等)

您的
code
变量现在包含JavaScript代码,您可以将其粘贴到另一个项目中,以复制使用画布绘制的图形

转换器 如果你不想复制每一个动作,你可以用一个转换器的方法来获取画布当前状态的“快照”(我想这是你真正想要的)-

您只需绘制并存储画布上的对象本身。您将需要创建和定义这些对象及其位置、大小、颜色等

然后,当点击“导出”按钮时,使用与上述类似的方法转换这些对象,但不是复制操作的每个步骤,而是将图形对象本身转换为当前状态:

/// object also stored in a stack but represents the graphics not the action
var myObject = {type:'line', x1:10, y1:20, x2:70, y2:100, color:'#f70'};
stack.push(myObject); 
当您迭代时:

...
case 'line';
    code += 'ctx.beginPath();\n';
    code += 'ctx.moveTo(' + o.x1 + ', ' + o.y1 + ');\n';
    code += 'ctx.lineTo(' + o.x2 + ', ' + o.y2 + ');\n';
    code += 'ctx.strokeStyle = "' + o.color + '";\n';
    code += 'ctx.stroke();\n';
...
转换为图像 如果你只是说“作为一个形象”,你会:

您可以将其用作图像标记的源或上载到服务器:

var img = new Image;
img.src = dataUri;
...

据我所知,没有任何工具可以做到这一点。但是你可以自己做

根据你的需要-

记录