如何在画布上添加图像,并在其上方放置旋转的文本?

用户名

我正在尝试让画布工作,我正在尝试做的是制作图像(从现有图像中)并在其上放置文本。我希望文本在图像的左侧旋转。我尝试旋转文本的那一刻,在画布上再也看不到它了。我正在使用以下解决方案:

var ctx = canvas.getContext("2d");
ctx.drawImage(img,0,0);
ctx.save();
ctx.rotate(-0.5*Math.PI);
ctx.font = "12px Arial";
ctx.fillStyle = 'white';
ctx.textBaseline = 'top';
ctx.fillText("copyright", 0, 0);
ctx.restore();
var image = canvas.toDataURL("image/jpeg");

使用此解决方案,我再也看不到文字了。当我删除旋转并在下面添加代码时,一切工作正常,图像被渲染,文本在图像上被渲染。

var ctx = canvas.getContext("2d");
ctx.drawImage(img,0,0);
ctx.rotate(-0.5*Math.PI);
ctx.font = "12px Arial";
ctx.fillStyle = 'white';
ctx.textBaseline = 'top';
ctx.fillText("copyright", 0, 0);
var image = canvas.toDataURL("image/jpeg");

谁能看到我犯的错误,还是有人可以解决我的问题?

我编辑了一个显示问题的jsfiddle http://jsfiddle.net/7kzuN/4/

品牌

旋转之前,应始终设置旋转点。

可以将旋转点想像成是用笔尖压在一张纸上。

旋转时,纸张将绕笔尖旋转。

您可以使用context.translate(x,y)设置旋转点。

要在图片的左侧旋转,您可以翻译如下内容:

// set the rotation point

ctx.translate(6,img.height/2);

这会将旋转点设置为离开图像左侧和垂直中心6个像素。

这是示例代码和演示:http : //jsfiddle.net/m1erickson/ANpPm/

在此处输入图片说明

var canvas=document.getElementById("canvas");
var ctx=canvas.getContext("2d");

var img=new Image();
img.crossOrigin="anonymous";
img.onload=start;
img.src="https://dl.dropboxusercontent.com/u/139992952/houseIcon.png";
function start(){
    canvas.width=img.width;
    canvas.height=img.height;
    // draw the image
    ctx.drawImage(img,0,0);
    // save the unrotated context
    ctx.save();
    // set the rotation point with translate
    ctx.translate(6,img.height/2);
    // rotate by -90 degrees
    ctx.rotate(-0.5*Math.PI);
    // draw the copyright bar
    ctx.fillStyle="black";
    ctx.fillRect(-img.height/2,-6,img.height,14);
    ctx.font = "12px Arial";
    ctx.fillStyle = 'white';
    ctx.textBaseline = 'top';
    ctx.fillText("copyright", -img.height/2+5,-6);
    // restore the context to its unrotated state
    ctx.restore();
    // save the image+text to a dataURL
    var image = canvas.toDataURL("image/jpeg");

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何创建背景图像并在其上添加文本

来自分类Dev

如何创建背景图像并在其上添加文本

来自分类Dev

如何在图像的选定区域上的文本上方添加鼠标?

来自分类Dev

如何在图像的选定区域上的文本上方添加鼠标?

来自分类Dev

如何在图像的右上方放置文本?

来自分类Dev

如何在背景中添加图像并在其上添加滚动矩形?

来自分类Dev

如何在放置在画布上的图像上获取点击事件

来自分类Dev

如何在每个画布上添加图像?

来自分类Dev

如何在织物画布上添加图像?

来自分类Dev

如何在图像上放置文本块?

来自分类Dev

如何在图像上放置文本块?

来自分类Dev

boomla:如何在图像上放置文本

来自分类Dev

如何在灵活的图像上放置文本?

来自分类Dev

如何在HTML中创建一个矩形并在其上放置一些文本?

来自分类Dev

如何在python-Tkinter的画布文本上放置轮廓

来自分类Dev

如何在画布上垂直居中放置文本

来自分类Dev

如何合并3个关节并在其上覆盖图像以使图像旋转

来自分类Dev

如何合并3个关节并在其上覆盖图像以使图像旋转

来自分类常见问题

如何在图像上方放置按钮?(tkinter)

来自分类Dev

如何在图像上方放置按钮?(tkinter)

来自分类Dev

如何在WinRT中的按钮上的图像上放置文本

来自分类Dev

如何在WinRT中的按钮上的图像上放置文本

来自分类Dev

如何在Android中使用画布在其他图像中添加图像?

来自分类Dev

如何在图像上动态添加文本?

来自分类Dev

如何在Android中的画布文本上添加透明背景?

来自分类Dev

如何在图像上垂直放置文本块?

来自分类Dev

如何在响应图像上垂直居中放置文本?

来自分类Dev

如何在占位符图像上放置文本

来自分类Dev

如何在动画图像上放置文本

Related 相关文章

  1. 1

    如何创建背景图像并在其上添加文本

  2. 2

    如何创建背景图像并在其上添加文本

  3. 3

    如何在图像的选定区域上的文本上方添加鼠标?

  4. 4

    如何在图像的选定区域上的文本上方添加鼠标?

  5. 5

    如何在图像的右上方放置文本?

  6. 6

    如何在背景中添加图像并在其上添加滚动矩形?

  7. 7

    如何在放置在画布上的图像上获取点击事件

  8. 8

    如何在每个画布上添加图像?

  9. 9

    如何在织物画布上添加图像?

  10. 10

    如何在图像上放置文本块?

  11. 11

    如何在图像上放置文本块?

  12. 12

    boomla:如何在图像上放置文本

  13. 13

    如何在灵活的图像上放置文本?

  14. 14

    如何在HTML中创建一个矩形并在其上放置一些文本?

  15. 15

    如何在python-Tkinter的画布文本上放置轮廓

  16. 16

    如何在画布上垂直居中放置文本

  17. 17

    如何合并3个关节并在其上覆盖图像以使图像旋转

  18. 18

    如何合并3个关节并在其上覆盖图像以使图像旋转

  19. 19

    如何在图像上方放置按钮?(tkinter)

  20. 20

    如何在图像上方放置按钮?(tkinter)

  21. 21

    如何在WinRT中的按钮上的图像上放置文本

  22. 22

    如何在WinRT中的按钮上的图像上放置文本

  23. 23

    如何在Android中使用画布在其他图像中添加图像?

  24. 24

    如何在图像上动态添加文本?

  25. 25

    如何在Android中的画布文本上添加透明背景?

  26. 26

    如何在图像上垂直放置文本块?

  27. 27

    如何在响应图像上垂直居中放置文本?

  28. 28

    如何在占位符图像上放置文本

  29. 29

    如何在动画图像上放置文本

热门标签

归档