ios开发怎么将image转为data二进制

系统的nsdata转换内存泄露,求其他的转换方式,在线等,拜托各位大神

阅读 12k
4 个回答
新手上路,请多包涵

系统里面函数:
UIKIT_EXTERN NSData __nullable UIImagePNGRepresentation(UIImage __nonnull image); // return image as PNG. May return nil if image has no CGImageRef or invalid bitmap format
UIKIT_EXTERN NSData __nullable UIImageJPEGRepresentation(UIImage __nonnull image, CGFloat compressionQuality); // return image as JPEG. May return nil if image has no CGImageRef or invalid bitmap format. compression is 0(most)..1(least)

例如:
NSData *data = UIImageJPEGRepresentation(image,1.0);

data = UIImageJPEGRepresentation(image, (CGFloat)1.0);//.jpg

你把你的需求补充下

image:要转的图片
compressionQuality:压缩质量,1代表质量最高

NSData *data = UIImageJPEGRepresentation(image, compressionQuality);

原始质量的png图片

NSData *data = UIImagePNGRepresentation(newImage);

png ios项目中所有的图像都应该使用这种格式, Xcode在构建应用时会自动优化png图像,这使.png格式成为iOS 应用中最快,最有效的图片格式。 - 《精通ios开发》 第七版 P29

CGDataProviderRef provider = CGImageGetDataProvider(image.CGImage);
NSData* data = (id)CGDataProviderCopyData(provider);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题