QT中QImage::setPixel用法(原创)
(2009-10-26 02:54:45)
标签:
qt编程qimagesetpixelcit |
分类: 编程,制作,DIY |
首先解释一下:函数原形void QImage::setPixel ( int x, int y, uint index_or_rgb
)并不是要在(x,y)点设置像素值为index_or_rgb!
index_or_rgb指的是像素的索引值。
梦里写得例子,解释一下用void QImage::setPixel表示8位 灰阶图像的方法。
#include <QApplication>
#include <QWidget>
#include <QPainter>
#include <QBitmap>
class PainterWidget : public QWidget {
protected:
void
paintEvent(QPaintEvent*);
};
void PainterWidget::paintEvent(QPaintEvent *event) {
unsigned
char* array;
unsigned
char* base;
array =
(unsigned char*)malloc(1000*1000*sizeof(unsigned char));
base =
array;
int
k,s;
s = 0;
for(k=0;k<1000*1000;k++){
*array =
s;
array++;
s++;
if(s == 255) s=0;
}
array =
base;
QPainter
painter(this);
QImage
image(1000, 1000, QImage::Format_RGB32);
QRgb
value;
int i,j;
for(i=0;i<1000;i++)
for(j=0;j<1000;j++){
value =
qRgb((int)(*array),(int)(*array), (int)(*array));
image.setPixel(i, j, value);
array++;
}
painter.drawImage(0,0,image);
}
int main(int argc, char *argv[]) {
QApplication
app(argc, argv);
PainterWidget pWidget;
pWidget.setWindowTitle("QPixmap & QBitmap");
pWidget.resize(400, 150);
pWidget.show();
return
app.exec();
}
很烂的一段程序是吧:》
所以欢迎转载,最好注明出处。
index_or_rgb指的是像素的索引值。
梦里写得例子,解释一下用void QImage::setPixel表示8位 灰阶图像的方法。
#include <QApplication>
#include <QWidget>
#include <QPainter>
#include <QBitmap>
class PainterWidget : public QWidget {
protected:
};
void PainterWidget::paintEvent(QPaintEvent *event) {
int i,j;
for(i=0;i<1000;i++)
}
}
int main(int argc, char *argv[]) {
}
很烂的一段程序是吧:》
所以欢迎转载,最好注明出处。
前一篇:GDB调试精粹及使用实例
后一篇:mysql的匹配模式