从缓冲区创建QImage,没有深层拷贝?

man*_*tta 3 c++ qt

在Qt中,如何QImage从字节数组('uint8_t*`)构造一个对象,而不创建一个深拷贝,只是引用我的数据数组?

pep*_*ppe 6

使用其中任何一个需要的构造函数uchar *,例如

QImage::QImage(uchar *data, 
               int width, 
               int height, 
               int bytesPerLine, 
               Format format, 
               QImageCleanupFunction cleanupFunction = Q_NULLPTR, 
               void *cleanupInfo = Q_NULLPTR)
Run Code Online (Sandbox Code Playgroud)

正如文件所说:

缓冲区必须在QImage的整个生命周期内保持有效,并且所有未复制或以其他方式从原始缓冲区中分离的副本都必须保持有效.图像不会在销毁时删除缓冲区.您可以提供一个函数指针cleanupFunction以及一个额外的指针cleanupInfo,它将在销毁最后一个副本时被调用.