代码之家  ›  专栏  ›  技术社区  ›  zcleghern

在三便士的图形用户界面画布上绘制图像

  •  4
  • zcleghern  · 技术社区  · 6 年前

    我对画布有意见。我已经修改了画布.hs在画布上绘制图像的示例程序

    canvas # drawImg
    

    canvas <- UI.canvas
          # set UI.height canvasSize
          # set UI.width  canvasSize
          # set style [("border", "solid black 1px"), ("background", "#eee")]
    

    图纸在哪里

    drawImg :: UI.Canvas -> UI ()
    drawImg canvas = do
      url <- UI.loadFile "image/png" "resources/img.png"
      img <- UI.img # set UI.src url
      UI.drawImage img (0,0) canvas
    

    它的行为应该与原始版本代码中用于绘制图像的单击函数相同。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Heinrich Apfelmus    6 年前

    canvas 是DOM的一部分?别忘了用via将它添加到文档体中 getBody #+ [...] 或者类似的。

    不过,可能还有另一个问题:浏览器通常异步加载图像URL。事实上,我不确定如果图像不是DOM的一部分,它们是否加载图像URL,如您的示例所示。在这两种情况下,如果在加载图像的URL之前尝试将图像绘制到画布,则不会绘制任何内容。(检查此问题是否与代码中的问题相关的最简单方法是绘制多边形而不是图像。)