QImage的浅拷贝与深拷贝 -- Deep Copy[转]

diamonds

 

 

 

首先简单说说什么是浅拷贝和深拷贝:浅拷贝就比如像引用类型,而深拷贝就比如值类型,即浅拷贝是共用一块内存的,而深拷贝是复制一份内容。

  我们再来看看QImage类的几个构造函数:

// 浅拷贝
QImage(uchar * data, int width, int height, Format format)
// 浅拷贝
QImage(const uchar * data, int width, int height, Format format)
// 浅拷贝
QImage(uchar * data, int width, int height, int bytesPerLine, Format format)
// 浅拷贝
QImage(const uchar * data, int width, int height, int bytesPerLine, Format format)
// 深拷贝
QImage QImage::copy(const QRect & rectangle = QRect()) const
// 浅拷贝
QImage QImage::rgbSwapped() const
  从构造函数可以得知只要知道:

指向图像数据的uchar*型地址
图像宽度
图像高度
图像格式或者是图像的每行字节数(通道*宽度)
  那么就可以构造出一个QImage的实体,而这里讨论的是,这个实体是与传入构造函数的图像数据

你可能感兴趣的:(Qt开发专栏)