简单的图形API,支持透明度、多边形和读取图像像素?

2 投票
5 回答
1085 浏览
提问于 2025-04-15 23:50

我需要一个简单的图形库,能够支持以下功能:

  1. 可以画多边形(不仅仅是矩形!),而且颜色要支持RGBA(也就是可以部分透明),
  2. 可以加载位图图片,
  3. 可以读取指定坐标的像素当前颜色。

最好是用JavaScript或Python来实现。

看起来HTML 5 Canvas可以处理第2和第3个功能,但第1个功能不行,而SVG可以处理第1和第2个功能,但第3个功能不行。我是不是漏掉了什么(关于这两个)?或者有没有其他的选择?

5 个回答

1

GameJs 不仅能做到这些,还能做更多的事情 - 它和之前提到的 PyGame 很相似。

http://gamejs.org

它可以绘制多边形(不仅仅是矩形!),而且支持 RGBA 颜色(也就是可以部分透明的颜色),

gamejs.draw.polygon (surface, color, pointlist, width)

透明颜色可以用 'rgba(50, 50, 50, 0.1)' 来定义(最后一个数字是透明度)。

http://docs.gamejs.org/gamejs/draw/#polygon

它还可以加载位图图片,

var surface = gamejs.image.load('images/foo.png')

http://docs.gamejs.org/gamejs/image/

并且可以读取特定坐标处像素的当前颜色。

// a surface array is a special DOM canvas array
// that is superfast for per pixel access / manipulation

var srfArray = new SurfaceArray(display);
srfArray.set(50, 100, [255, 0, 0, 100]);
srfArray.get(20, 30);

http://docs.gamejs.org/gamejs/surfacearray/

2

我最后选择了使用Canvas。多边形的“秘诀”就是使用路径。谢谢你,"tur1ng"!

3

PyGame可以做这些事情。不过,我觉得它不太适合嵌入到图形用户界面(GUI)中。

撰写回答