22 lines
872 B
C++
22 lines
872 B
C++
#pragma once
|
|
|
|
#include <QImage>
|
|
#include <QPointF>
|
|
#include <QPainterPath>
|
|
#include <QRect>
|
|
#include <QSize>
|
|
#include <QVector>
|
|
|
|
namespace entity_cutout {
|
|
|
|
QPainterPath pathFromWorldPolygon(const QVector<QPointF>& poly);
|
|
QPointF polygonCentroid(const QVector<QPointF>& poly);
|
|
QRect clampRectToImage(const QRect& r, const QSize& size);
|
|
QImage extractEntityImage(const QImage& bg, const QVector<QPointF>& polyWorld, QPointF& outTopLeftWorld);
|
|
void applyBlackFillToBackground(QImage& bgCutout, const QVector<QPointF>& polyWorld);
|
|
/// 子图左上角与 cropWorldRect.topLeft() 对齐(世界坐标);将 holePolysWorld 内像素置黑,供分割/吸附与画布一致。
|
|
void applyBlackHolesToImageRegion(QImage& regionPremul, const QRect& cropWorldRect,
|
|
const QVector<QVector<QPointF>>& holePolysWorld);
|
|
|
|
} // namespace entity_cutout
|