1、qpixmap
基类:QPaintDevice
子类: QBitmap
构造:
QPixmap()//null qpixmap,可以用 isnull() 判断
QPixmap(int width, int height)
QPixmap(const QSize &size)//根据size创建
QPixmap(const QString &fileName, const char * format = Q_NULLPTR, Qt::ImageConversionFlags flags = Qt::AutoColor)// > If the image needs to be modified to fit in a lower-resolution result (e.g. converting from 32-bit to 8-bit), use the flags to control the conversion.
常用方法
加载图片
bool QPixmap::load(const QString &fileName, const char *format = Q_NULLPTR, Qt::ImageConversionFlags flags = Qt::AutoColor)
bool QPixmap::load(const QString &fileName, const char *format = Q_NULLPTR, Qt::ImageConversionFlags flags = Qt::AutoColor)
NOTE:qpixmap将图片存储在缓存器里,反复load,要么用局部变量,要么QPixmapCache::clear();然后再加载,要么在初始化函数里写:QPixmapCache::setCacheLimit(1)
保存图片,根据格式(默认格式为后缀,0),quality range(0,,100),-1默认
bool QPixmap::save(const QString &fileName, const char *format = Q_NULLPTR, int quality = -1) const
给qpixmap指定大小,,指定纵横比模式,,缩放模式,非默认缩放选项效果与平台有关
QPixmap QPixmap::scaled(const QSize &size, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio, Qt::TransformationMode transformMode = Qt::FastTransformation) const
转换为qimage对象
QImage QPixmap::toImage() const//失败返回空的qimage对象,要判断
根据qimage填充qpixmap,若返回false,则该pixmap为null
bool QPixmap::convertFromImage(const QImage &image, Qt::ImageConversionFlags flags = Qt::AutoColor)
etc
2、qimage
特点: qpixmap则针对在屏幕上显示图像进行了设计和优化。qimage针对I/O和直接像素访问和操作进行了设计和优化,
WARN: 不支持使用qImage::format_indexed8格式在qImage上绘制。
构造函数
QImage()
QImage(const QSize &size, Format format)
QImage::QImage(const uchar * data, int width, int height, int bytesPerLine, Format format, QImageCleanupFunction cleanupFunction = Q_NULLPTR, void * cleanupInfo = Q_NULLPTR)
QImage(const QString &fileName, const char * format = Q_NULLPTR)
QImage(const QImage &image)
常用函数
返回第一个像素数据的指针
uchar * QImage::bits() = scanLine(0)
返回该image字节大小
int QImage::byteCount() const
每行字节数
int QImage::bytesPerLine() const
根据内容产生特有的标志
qint64 QImage::cacheKey() const
改变qimage本身格式
QImage QImage::convertToFormat(Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) const
截取并返回长方形部分qimage
QImage QImage::copy(const QRect &rectangle = QRect()) const
QImage QImage::copy(int x, int y, int width, int height) const
返回image depth
int QImage::depth() const
定义水平,竖直放置的像素,(由此改变纵横比)
int QImage::dotsPerMeterX() const
int QImage::dotsPerMeterY() const
返回该image的format
Format QImage::format() const
检测该qimage是否有alpha分量
bool QImage::hasAlphaChannel() const
返回该qimage的height和width
int QImage::height() const
int QImage::width() const
加载图片
bool QImage::load(QIODevice *device, const char *format)
bool QImage::loadFromData(const uchar *data, int len, const char *format = Q_NULLPTR)
返回处理过的qimage
QImage QImage::mirrored(bool horizontal = false, bool vertical = true) const//镜像翻转
返回给定位置的像素信息,****可以根据height,width改变该图片的色调
QRgb QImage::pixel(const QPoint &position) const
QRgb QImage::pixel(int x, int y) const
返回指定位置像素的颜色信息,当image较大时,代价很大
QColor QImage::pixelColor(const QPoint &position) const
QColor QImage::pixelColor(int x, int y) const
返回像素格式
QPixelFormat QImage::pixelFormat() const
反回指定位置的像素下标
int QImage::pixelIndex(const QPoint &position) const
int QImage::pixelIndex(int x, int y) const
返回图像封闭矩形
QRect QImage::rect() const
返回红蓝分量交换过的 qiamge
QImage QImage::rgbSwapped() const
保存为文件
bool QImage::save(const QString &fileName, const char *format = Q_NULLPTR, int quality = -1) const
bool QImage::save(QIODevice *device, const char *format = Q_NULLPTR, int quality = -1) const
1009c445543607928aeb27873fc08150.png
调整qimage大小,,以及纵横比,,参数见qpixmap::scaled()
QImage QImage::scaled(const QSize &size, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio, Qt::TransformationMode transformMode = Qt::FastTransformation) const
修改qimage信息
void QImage::setColor(int index, QRgb colorValue)
void QImage::setPixel(const QPoint &position, uint index_or_rgb)
void QImage::setPixel(int x, int y, uint index_or_rgb)
void QImage::setPixelColor(const QPoint &position, const QColor &color)