CGImage内存大小返回奇怪的结果

时间:2016-12-19 15:27:00

标签: memory memory-management uiimage cgimage cgimageref

我会快速而直截了当。

我使用这种方法来计算UIImage'记忆大小。

extension UIImage {

   func memorySize() -> size_t {
        let image = self.cgImage!
        let size =  image.height * image.bytesPerRow
        return size
    }
}

我正在裁剪UIImage之前裁剪图像(使用原始图像的含义)。  这是图片统计信息:Width - > 2668 | Height - > 2000年| scale - > 1 | memorySize - > 21376000

后使用

裁剪原始图片
 func passCroppedImage(_ myFrame : CGRect) -> UIImage {
        let imageRef:CGImage = preview.image!.cgImage!.cropping(to: rect)!
        let croppedImage:UIImage = UIImage(cgImage: imageRef)
        return croppedImage
}

我的裁剪图片统计信息为:Width - > 1126 | Height - > 2000年| scale - > 1 | memorySize - > 21376000

如何裁剪图像宽度/高度尺寸不同,但内存大小保持不变?

根据苹果文档,我做过一项关于image.cgImage!.cropping(to: rect) -> CGImage

的小型研究。
   The resulting image retains a reference to the original image,
   which means you may release the original image after calling this function.

但是,如果我试图发布CGImage,它会说Swift处理内存管理。我很困惑。 非常感谢任何帮助!

0 个答案:

没有答案