图形处理与拖放操作技术解析
1. 使用QImage访问像素值
QImage对象可用于存储图像信息,并提供对单个像素信息的底层访问。以下示例展示了如何创建一个QPixmap,将其转换为QImage以修改像素颜色值,然后再将其转换回QPixmap进行显示。
QImage有三种形式,分别为每个像素包含1位、8位或32位。若QImage对象每个像素仅含1位,则该QImage仅包含黑白图形信息。实际上,这一位值用作颜色映射表的索引,该表通常包含黑白两种颜色,但也可以包含任意两种颜色。不过,对这种类型的QImage对象应用颜色方法和标志不会产生任何效果。
根据所使用的颜色模型,QImage对象可能将实际颜色数据存储在颜色映射表中,或者直接存储在每个像素位置。无论哪种情况,程序都能够修改颜色。若使用颜色映射表,可以修改颜色映射表的索引或颜色映射表本身的内容;若不使用颜色映射表,则可以修改每个单独的像素。
以下是相关代码示例:
/* imagemodify.h */
#ifndef IMAGEMODIFY_H
#define IMAGEMODIFY_H
#include <qwidget.h>
class ImageModify: public QWidget
{
public:
ImageModify(QWidget *parent=0,const char *name=0);
private:
QPixmap logo;
QPixmap modlogo;
QRgb rgbModify(QRgb rgb);
protected:
virtual
超级会员免费看
订阅专栏 解锁全文
1451

被折叠的 条评论
为什么被折叠?



