练习一 使用QImage显示RGB图像和灰度图像

QT的图像类有QImage,QPixmap,QBitmap,QPicture。
CMyWidget类头文件:
#ifndef CMYWIDGET_H

#define CMYWIDGET_H

#include <QPainter.h>

#include <QImage>

class CMyWidget : public QWidget

{

// Q_OBJECT

public:

CMyWidget(QWidget *parent = 0);

void paintEvent(QPaintEvent *e);

private:

QImage *image;

QImage *iGray;

int w,h;

};

#endif // CMYWIDGET_H

CMyWidget类源文件:
#include "CMyWidget.h"

CMyWidget::CMyWidget(QWidget *parent) : QWidget(parent)

{

image = new QImage("zzcc.jpg");

w = image->width();

h = image->height();

iGray = new QImage(w, h, QImage::Format_ARGB32);

resize(640,480);

}

void CMyWidget::paintEvent(QPaintEvent *e)

{

QPainter painter(this);

for(int i=0; i<w; i++)

for(int j=0; j<h; j++)

{

QRgb pixel = image->pixel(i,j);

//int gray = qGray(pixel);

//QRgb grayPixel = qRgb(gray, gray, gray);

int Red = qRed(pixel);

int Green = qGreen(pixel);

int Blue = qBlue(pixel);

QRgb rgbPix = qRgb(Red,Green,Blue);

//iGray->setPixel(i, j, grayPixel);

iGray->setPixel(i,j,rgbPix);

}

QFile file("zzccRGB");

file.open(QFile::WriteOnly);

file.write((const char*)(iGray->bits()),(qint64)(iGray->numBytes()));

file.close();

painter.begin(this);

painter.drawImage(0,0,*image);

painter.drawImage(320,0,*iGray);

painter.end();

}

main.cpp主文件:
#include <QtGui/QtGui>

#include <QApplication>

#include <QPainter.h>

#include "CMyWidget.h"

int main (int argc,char **argv)

{

QApplication app(argc,argv);

CMyWidget *win = new CMyWidget();

win->show();

return app.exec();

}




http://zzcc19870623.blog.163.com/blog/static/15938520201171952931828/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值