0

请问你能帮我吗?我正在寻找一种方法,如何使用图像文件(.png 或 .jpg)在画布中映射多边形,但我很困惑,我不知道该怎么做......你能告诉我或给教程的链接如何在画布中用图像映射多边形?非常感谢你

4

1 回答 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 回答