在我的应用程序中,我使用此函数创建一个unsigned char指针:
- (unsigned char*)getRawData { // First get the image into your data buffer CGImageRef image = [self CGImage]; NSUInteger width = CGImageGetWidth(image); NSUInteger height = CGImageGetHeight(image); CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); unsigned char *rawData = malloc(height * width * 4); NSUInteger bytesPerPixel = 4; NSUInteger bytesPerRow = bytesPerPixel * width; NSUInteger bitsPerComponent = 8; CGContextRef context = CGBitmapContextCreate(rawData,width,height,bitsPerComponent,bytesPerRow,colorSpace,kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big); CGColorSpaceRelease(colorSpace); CGContextSetBlendMode(context,kCGBlendModecopy); CGContextDrawImage(context,CGRectMake(0.0f,0.0f,(CGFloat)width,(CGFloat)height),image); CGContextRelease(context); // Now your rawData contains the image data in the RGBA8888 pixel format. return rawData; }
在另一个类中,我将一个属性分配给该指针,如下所示:self.bitmapData = [image getRawData];
在这个过程中我可以释放那个malloc内存吗?当我尝试在dealloc中释放属性时,它会给我一个exc_bad_access错误.我觉得我在这里缺少一个基本的c或objective-c概念.所有帮助表示赞赏.
解决方法
原文地址:https://www.jb51.cc/c/111803.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。