imagemodify.cpp

来自「Linux下用kde编制的程序」· C++ 代码 · 共 56 行

CPP
56
字号
/* imagemodify.cpp */#include <kapp.h>#include <qpainter.h>#include <qimage.h>#include <qcolor.h>#include "imagemodify.h"#include "logo.xpm"int main(int argc,char **argv){    KApplication app(argc,argv,"imagemodify");    ImageModify imagemodify;    imagemodify.show();    app.setMainWidget(&imagemodify);    return(app.exec());}ImageModify::ImageModify(QWidget *parent,const        char *name) : QWidget(parent,name){    logo = QPixmap(magick);    QImage image = logo.convertToImage();    if(image.numColors() > 0) {        for(int i=0; i<image.numColors(); i++) {            QRgb rgbOrig = image.color(i);            QRgb rgbMod = rgbModify(rgbOrig);            image.setColor(i,rgbMod);        }    } else {        for(int x=0; x<image.width(); x++) {            for(int y=0; y<image.height(); y++) {                QRgb rgbOrig = image.pixel(x,y);                QRgb rgbMod = rgbModify(rgbOrig);                image.setPixel(x,y,rgbMod);            }        }    }    modlogo.convertFromImage(image,ThresholdDither);    setFixedSize(514,303);}QRgb ImageModify::rgbModify(QRgb rgb) {    int alpha = rgb & 0xFF000000;    QRgb rgbMod = qRgb(qGreen(rgb) & 0xC0,            qRed(rgb) & 0xC0,            qBlue(rgb) & 0xC0);    rgbMod |= alpha;    return(rgbMod);}void ImageModify::paintEvent(QPaintEvent *){    QPainter p(this);    p.drawPixmap(0,0,logo);    p.drawPixmap(257,0,modlogo);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?