Qt类QImage
有两个版本的bits()
函数,它返回一个指向底层图像数据的指针。一个是const,另一个不是。对于非const版本,这里是the documentation:
返回指向第一个像素数据的指针。这相当于 扫描线(0)。
请注意,QImage使用隐式数据共享。此功能执行 共享像素数据的深拷贝,从而确保了这个QImage 唯一使用当前返回值的人。
返回类型为uchar*
。
这是否意味着当我完成它以避免内存泄漏时,我负责在此指针上调用delete
?
答案 0 :(得分:6)
不,这只是意味着非const版本会导致QImage与共享相同数据的任何其他实例分离,因为您可能正在修改它。它仍然保持所有权。只是为了确定,实施(来自Qt 4.7.2):
uchar *QImage::bits()
{
if (!d)
return 0;
detach();
// In case detach ran out of memory...
if (!d)
return 0;
return d->data;
}