21#include <tqvaluevector.h>
25#include "kis_global.h"
26#include "kis_alpha_mask.h"
30 m_width = img.width();
31 m_height = img.height();
43 m_width = img.width();
44 m_height = img.height();
62KisAlphaMask::~KisAlphaMask()
76void KisAlphaMask::setAlphaAt(TQ_INT32 x, TQ_INT32 y, TQ_UINT8 alpha)
78 if (y >= 0 && y < m_height && x >= 0 && x < m_width) {
79 m_data[(y * m_width) + x] = alpha;
83void KisAlphaMask::copyAlpha(
const TQImage& img)
85 for (
int y = 0; y < img.height(); y++) {
86 for (
int x = 0; x < img.width(); x++) {
87 TQRgb c = img.pixel(x,y);
88 TQ_UINT8 a = (tqGray(c) * tqAlpha(c)) / 255;
95void KisAlphaMask::computeAlpha(
const TQImage& img)
105 for (
int y = 0; y < img.height(); y++) {
106 for (
int x = 0; x < img.width(); x++) {
107 m_data.push_back(255 - tqRed(img.pixel(x, y)));
112KisAlphaMaskSP KisAlphaMask::interpolate(KisAlphaMaskSP mask1, KisAlphaMaskSP mask2,
double t)
114 Q_ASSERT((mask1->width() == mask2->width()) && (mask1->height() == mask2->height()));
115 Q_ASSERT(t > -DBL_EPSILON && t < 1 + DBL_EPSILON);
117 int width = mask1->width();
118 int height = mask1->height();
120 TQ_CHECK_PTR(outputMask);
122 for (
int x = 0; x <
width; x++) {
123 for (
int y = 0; y <
height; y++) {
124 TQ_UINT8 d =
static_cast<TQ_UINT8
>((1 - t) * mask1->alphaAt(x, y) + t * mask2->alphaAt(x, y));
125 outputMask->setAlphaAt(x, y, d);
KisAlphaMask(const TQImage &img)
Create an alpha mask based on the specified TQImage.