QT变化QImageα
我需要改变我拥有的一个气法师的阿尔法,这样它就能与后面和前面的其他气法师混合。这需要快速开关 以前,我不得不重新创建每一张图像,并给它们一个新的颜色,只是一个不同的阿尔法值。但现在我想保留同样的原始图像,而不是重新绘制和绘制它 我现在试着这样做:QT变化QImageα,qt,qt4,qimage,Qt,Qt4,Qimage,我需要改变我拥有的一个气法师的阿尔法,这样它就能与后面和前面的其他气法师混合。这需要快速开关 以前,我不得不重新创建每一张图像,并给它们一个新的颜色,只是一个不同的阿尔法值。但现在我想保留同样的原始图像,而不是重新绘制和绘制它 我现在试着这样做: QImage image; unsigned int rgb; for(int y=0;y<image.height();y++){ for(int x=0;x<image.width();x++){ rgb=image.pi
QImage image;
unsigned int rgb;
for(int y=0;y<image.height();y++){
for(int x=0;x<image.width();x++){
rgb=image.pixel(x,y);
image.setPixel(x,y,qRgba(qRed(rgb),qGreen(rgb),qRed(rgb),120));
}
}
QImage图像;
无符号整数rgb;
对于(int y=0;y如果您在QGraphicsView
或其他QWidget
中使用QImage
,您应该查看此QGraphicsEffect
:
如果您使用的是QLabel,我将尝试以下方法:
#include <QLabel>
#include <QPainter>
class TransparentQLabel : public QLabel
{
Q_OBJECT
public:
explicit TransparentQLabel() : QLabel() {}
~TransparentQLabel(){}
void setOpacity(const qreal & val)
{
if (this->pixmap() == null || this->pixmap().isNull())
return;
QPixmap result(this->pixmap()->size());
result.fill(Qt::transparent);
QPainter painter;
painter.begin(&result);
painter.setOpacity(val);
painter.drawPixmap(0, 0, *(this->pixmap()));
painter.end();
QLabel::setPixmap(result);
}
};
下面是一个例子,说明这些东西在起作用:
希望对您有所帮助。如果您在QGraphicsView
或其他QWidget
中使用QImage
,您应该查看此QGraphicsEffect
:
如果您使用的是QLabel,我将尝试以下方法:
#include <QLabel>
#include <QPainter>
class TransparentQLabel : public QLabel
{
Q_OBJECT
public:
explicit TransparentQLabel() : QLabel() {}
~TransparentQLabel(){}
void setOpacity(const qreal & val)
{
if (this->pixmap() == null || this->pixmap().isNull())
return;
QPixmap result(this->pixmap()->size());
result.fill(Qt::transparent);
QPainter painter;
painter.begin(&result);
painter.setOpacity(val);
painter.drawPixmap(0, 0, *(this->pixmap()));
painter.end();
QLabel::setPixmap(result);
}
};
下面是一个例子,说明这些东西在起作用:
希望有帮助。
你有一个打字:第二个到最后一个qrgBa()参数应该是Q蓝色,而不是QReIn。你在哪个上下文中绘制图像?如果你使用Q画家,考虑使用Q画家::StuopObon当绘画时。你有一个打字:第二个到最后一个QRGBa()。参数应该是Q蓝色,而不是QRILIN,你是如何画图像的?如果你使用Q画家,考虑使用Q画家::StuopObon当绘画时,我使用QGrimeCiStIm,这样第三个链接就是我正在寻找的。我太专注于改变我用的图像来描绘,我忘记了T的功能。他是QGraphicsItem。谢谢Vash。我正在使用QGraphicsItem,所以第三个链接正是我想要的。我太专注于改变我用来绘制的图像,以至于我忘记了QGraphicsItem的功能。谢谢Vash。