fltk1.3 Fl_Image::draw(边界框)

fltk1.3 Fl_Image::draw (bounding box)

Fl_Image class 的 fltk documentation 提到 Fl_Image::draw(int x, int y, int w, int h, int cx, int cy) 其中,据我了解,绘制了Fl_Image的一部分。当然不能直接调用fltk中的任何draw()方法,那么如何实现类似的结果呢?如何使用 draw() 方法绘制 Fl_Image?

的一部分

不幸的是,fltk 的“Drawing Images”文档没有帮助,我已经检查了 fltk 安装提供的示例文件(我使用的是 ubuntu),但是 none的示例中提到了如何使用此功能。

我知道通常绘制图像的方式是这样的:

//...
Fl_Box b(x,y,w,h);
Fl_PNG_Image i("ex.png");
b.image(i);
//...

但这没有用,因为它只是使用(我假设)常规 Fl_Image::draw(int x, int y, int w, int h) 函数。有趣的是,documentation 明确地写着“图像可以用作小部件的标签,使用 image() 和 deimage() 方法或直接绘制。"。

How can I use the draw() method to draw a portion of an Fl_Image?

您需要子类化 Fl_Image 或某些 Fl_Widget 并覆盖绘制函数。