에서 QImage를 정리하는 방법.Qt는 : 취소 또는 <code>QIMage</code>에 const를 참조를 얻을 광산의 <a href="http://doc.qt.io/qt-5/qimage.html" rel="nofollow noreferrer">QIMage</a></p> <p>다음 방법을 정리하는 방법을 메모리
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
것을
참고. 그래서 대답은 비 const로 QImage
을 주조해야할까요? 또한 데이터를 삭제하려면 QImageData
포인터를 얻으려고합니다. 확실한 접근 방법이 여기에 있는지 확실하지 않습니다. 좋습니다.
'const_cast'는 권장되지 않습니다. 그러나, 만약 내가'QImage copy = const_cast (img)'처럼 const_cast를한다면'copy = QImage()'를해라. ** 이것으로'img'을 정리할 수 있습니까? ** –
shared_ptr을 사용하면 정리에 대해 걱정할 필요가 없습니까? –
문제는 Qt가 QImage, QByteArray 등과 같은 많은 클래스에서 COW를 사용한다는 것입니다. 따라서 이들 중 하나를 복사하면 동일한 데이터에 대한 새로운 참조가 생성됩니다. 참조 된 이미지 데이터를 확보하려면 동일한 데이터 (즉, 동일한 이미지를 참조하는 모든 QImage 인스턴스)에 대한 모든 참조가 삭제되어야합니다. – user1095108