请问你能帮我吗?我正在寻找一种方法,如何使用图像文件(.png 或 .jpg)在画布中映射多边形,但我很困惑,我不知道该怎么做......你能告诉我或给教程的链接如何在画布中用图像映射多边形?非常感谢你
问问题
478 次
1 回答
0
好的,我想我现在明白你的问题了。
您想将文本绘制成弯曲的路径...
好消息/坏消息:
Canvas无法直接执行此操作。
但是,您可以使用 Html SVG 来执行此操作。
您可以使用像 Inkscape 这样的免费程序来设计您的徽标。
然后将其保存为 SVG 格式 (myLogo.svg)。
然后你可以像这样将它加载到画布中:
var canvas=document.getElementById("canvas");
var ctx=canvas.getContext("2d");
var img=new Image();
img.onload=function(){
ctx.drawImage(img,0,0);
}
img.src="http://mySite.com/myLogo.svg";
这是您可以根据需要创建的 SVG 类型的快速演示。
这是一个小提琴:http: //jsfiddle.net/m1erickson/v4EX3/
<!doctype html>
<html>
<head>
<style>
body{ background-color: ivory; }
div{float:left;}
</style>
</head>
<body>
<div>
<svg viewBox = "0 0 200 120">
<defs>
<path id = "curvedPath" d = "M 10,90 Q 100,15 200,70 Q 340,140 400,30"/>
</defs>
<g fill = "white">
<use x = "0" y = "0" xlink:href = "#curvedPath" stroke = "black" stroke-width="40" fill = "none"/>
<text font-size = "20">
<textPath xlink:href = "#curvedPath">
Use SVG to put your text on a curved path like this!
</textPath>
</text>
</g>
</svg>
</div>
</body>
</html>
于 2013-02-19T21:13:42.887 回答