0

操作系统::win xp sp3

Qt::4.6

我正在开发基于 Qt 框架的 PUZZLE 游戏,需要一些帮助。

在项目中包含需要拆卸成较小部分的主要图片(带有图像的多边形属于它们)。所以我制作图像QImage image = QImage("someImage.jpg")并希望在该对象上使用诸如裁剪图像之类的操作。

我在诺基亚网站上检查过QImageQPixmap... docu 寻找会员功能。类似于种植,但发现为零。

需要参考类我必须使用(#include <???>)来解决这个问题,然后我会重新检查在线文档。

4

3 回答 3

1

假设原始图像称为 A。你有一个多边形 P。你想创建一个较小的图像 B,它基本上是由 P“裁剪”的 A。以下是步骤:

  • 创建 B。要知道大小,只需在 P 上使用 QPolygonF::boundingRect。
  • 用透明颜色或您想要的任何背景颜色填充 B。
  • 创建一个在 B 上工作的新 QPainter
  • 设置painter clip path为P(多边形可以转换路径),见QPainter::setClipPath
  • 使用画家绘制 A

请注意,如果 P 的边界矩形不在原点中,您可能会翻译画家。

于 2011-02-21T05:35:20.947 回答
0

您可以使用 QImage 的这些成员

QImage  copy ( const QRect & rectangle = QRect() ) const
QImage  copy ( int x, int y, int width, int height ) const
于 2010-12-23T11:42:18.993 回答
0

您应该使用 QPixMap:使用它,您可以将原始图像的全部或部分复制到拼图部分中。通过在这些部分上涂上透明的颜色,您可以使多边形的外部不可见。或者您将 bitBlt(Qt 3 支持成员)与 QImage 一起使用以获得相同的效果。

于 2010-12-26T14:33:37.053 回答