不要在主队列上运行jpegData(compressionQuality :) 同时运行一个jpegData(compressionQuality :) 错误: foriin0...50{DispatchQueue.global(qos:.utility).async{letquality=0.02*CGFloat(i)//let data = image.toJpegData(compressionQuality: quality)letdata=image.jpegData(compressionQuality:quality)letsize=CGFlo...
var compression: CGFloat = 1.0 let maxCompression: CGFloat = 0.1 let targetSize = CGSize(width: 1024, height: 1024) //指定尺寸 let scale = UIScreen.main.scale //根据设备屏幕缩放比例调整尺寸 var imageData = image.jpegData(compressionQuality: compression) var imageSize = imageData?.count ?
接下来,我们调用jpegData(compressionQuality:)将图片转换成 JPEG 格式的二进制数据。最后,我们将转换后的数据传递给自定义的uploadImageData(_:)方法进行上传操作。 状态图 以下是使用 Mermaid 语法绘制的状态图,展示了 UIImage 转 Data 的过程: LoadImageConvertData 在状态图中,[*]表示初始状态和结束状态,LoadImage...
import UIKit func compressImage(_ image: UIImage, to maxSize: Int) -> Data? { var compressionQuality: CGFloat = 1.0 let minCompressionQuality: CGFloat = 0.1 var imageData: Data? var imageSize: Int repeat { imageData = image.jpegData(compressionQuality: compressionQuality) imageSize = ima...
代码片段,生成图片之后转为data,赋值给hdImageData 问题如下 期望是这样的带背景图卡片 奇怪的是在debug模式下正常分享有背景,打包出来的就不行背景黑色了 代码片段 代码如图,view转image之后转为jpegData(compressionQuality: 回答关注问题邀请回答 收藏 分享 ...
jpeg图片都是可以压缩的,所以有个compressionQuality参数,代表压缩质量,取值0-1(一般0.8或0.9,具体看需求) UIImage转pngData: if let image = UIImage(named: "xx.png"),let data = image.pngData() { let filename = getDocumentsDirectory().appendingPathComponent("\(UUID().uuidString)...
jpeg图片都是可以压缩的,所以有个compressionQuality参数,代表压缩质量,取值0-1(一般0.8或0.9,具体看需求) UIImage转pngData: if let image = UIImage(named: "xx.png"),let data = image.pngData() { let filename = getDocumentsDirectory().appendingPathComponent("\(UUID().uuidString).png") ...
现在我们可以将选择的图片保存到本地目录中。我们需要将UIImage转换为Data,然后写入到文件中。 funcsaveImage(image:UIImage,name:String){guardletdata=image.jpegData(compressionQuality:1.0)else{print("无法将图片转换为数据")return}letfileURL=getDocumentsDirectory().appendingPathComponent("\(name).jpeg")do{...
try? data.write(to: filename) } jpeg图片都是可以压缩的,所以有个compressionQuality参数,代表压缩质量,取值0-1(一般0.8或0.9,具体看需求) UIImage转pngData: if let image = UIImage(named: "xx.png"),let data = image.pngData() { let filename = getDocumentsDirectory().appendingPathComponent("\...
当图片文件需要使用 Data 上传的时候,建议用这种 /// 直接使用data进行压缩/// - Parameter toKb: 指定data最大的体积/// - Returns: datafunccompressOriginalImage(_toKb:Int=10485760)->Data?{varcompression:CGFloat=1letminCompression:CGFloat=0.1varimageData=self.jpegData(compressionQuality:compression)if...