从UIImage转换到NSData类型

  1. //sdk中提供了方法可以直接调用  
  2. UIImage *img = [UIImage imageNamed:@"some.png"];  
  3. NSData *dataObj = UIImageJPEGRepresentation(img, 1.0);  
  4.   
  5. //下面是sdk中UIImage.h头文件中的内容  
  6. UIKIT_EXTERN NSData *UIImagePNGRepresentation(UIImage *image);                               // return image as PNG. May return nil if image has no CGImageRef or invalid bitmap format  
  7. UIKIT_EXTERN NSData *UIImageJPEGRepresentation(UIImage *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)  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用 Photos 框架来获取相册中的所有图片,代码示例: ```swift import Photos let fetchOptions = PHFetchOptions() fetchOptions.predicate = NSPredicate(format: "title = %@", "***ONE***") let collection = PHAssetCollection.fetchAssetCollections(with: .album, subtype: .any, options: fetchOptions) if let album = collection.firstObject { let assets = PHAsset.fetchAssets(in: album, options: nil) for index in 0..<assets.count { let asset = assets[index] PHImageManager.default().requestImageData(for: asset, options: nil) { (data, _, _, _) in if let imageData = data { // 将 imageData 转换成 CGImage if let image = UIImage(data: imageData)?.cgImage { // 将 CGImage 转换成 NSData let data = NSMutableData() let dest = CGImageDestinationCreateWithData(data, kUTTypeJPEG, 1, nil)! CGImageDestinationAddImage(dest, image, nil) CGImageDestinationFinalize(dest) // 使用转换后的 NSData 进行处理 } } } } } ``` 这里使用了 `PHAssetCollection.fetchAssetCollections` 方法来获取指定名称为 "***ONE***" 的相册,然后使用 `PHAsset.fetchAssets` 方法来获取相册中的所有照片,最后使用 `PHImageManager.default().requestImageData` 方法来获取每张照片的数据。在获取到数据之后,可以使用 `UIImage(data:)` 方法将数据转换UIImage,然后使用 `UIImage.cgImage` 属性将 UIImage 转换成 CGImage。最后可以使用 `CGImageDestinationCreateWithData` 方法将 CGImage 转换成 NSData。 需要注意的是,这里使用的是 JPEG 格式,如果需要使用其他格式,可以修改 `kUTTypeJPEG` 参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值