如何清除或清理QIMage
以下方法获取对QIMage
。
MyMethod(const QImage & img) {
// save it to a file
img.save("/path/to/save/the/qimage");
// now I want to clan up img from memory. How should I do it?
}
问题:
使用后如何从内存中清除QImage
对象?
注意:
请注意,它是const & QImage
。那么,答案会涉及将QImage
转换为非const?
此外,我正在尝试获取指向数据的QImageData
指针。删除它。不确定这是否是正确的方法。建议。
答案 0 :(得分:4)
您需要非const引用或指针。使用指针,答案是显而易见的。使用引用,您只需为其分配一个默认构造的QImage
。
MyMethod(QImage & img) {
img.save("/path/to/save/the/qimage");
img = QImage();
}
但是,如果有其他QImage
个实例引用同一图像,则仍可能无法清理图像占用的内存。要克服这个障碍,您需要避免引用同一图像的多个QImage
实例。在这方面,Qimage
实例就像一个共享指针。
const-cast将被视为揭示您案件中的设计缺陷。我建议反对。