Kingfisher 5.13~ UIImageView、UIButton类扩展加载 网络图片
Kingfisher 5.13~ UIImageView、UIButton类扩展加载 网络图片
UIImage 图片压缩、沙盒存储
//MARK: - UIButton
extension UIButton {//UIButton kf网络 图片func setButton(url:String,placeholder:String){let placegholderImage = UIImage(named: placeholder)if url.count > 0 {let urlImage:ImageResource = ImageResource(downloadURL: URL(string: url)!)self.kf.setImage(with: urlImage, for: .normal, placeholder: placegholderImage)} else {self.setImage(placegholderImage, for: .normal)}}
}
//MARK: - UIImageView
extension UIImageView {//UIImageView 网络 图片func setImageView(url:String,placeholder:String){let placegholderImage = UIImage(named: placeholder)if url.count > 0 {let urlImage:ImageResource = ImageResource(downloadURL: URL(string: url)!)self.kf.setImage(with: urlImage, placeholder: placegholderImage)} else {self.image = placegholderImage}}
}
//MARK: - UIImage
extension UIImage {// 图片压缩static func imageCompress(image:UIImage) -> Data {var imgData = image.jpegData(compressionQuality: 1)if imgData!.count > 100 * 1024 {if imgData!.count > 1024 * 1024 { //1M以及以上imgData = image.jpegData(compressionQuality: 0.1)} else if imgData!.count > 512 * 1024 { //1M以及以上imgData = image.jpegData(compressionQuality: 0.3)}else if imgData!.count > 200 * 1024 {//0.25M-0.5MimgData = image.jpegData(compressionQuality: 0.5)} else {imgData = image.jpegData(compressionQuality: 0.8)}}return imgData!;}// 存储图片 到沙盒static func saveImage(image:UIImage,fileName:String) -> String {let path = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]let filePath = path.appending("/" + fileName)let data:Data = image.jpegData(compressionQuality: 1)!FileManager.default.createFile(atPath: filePath, contents: data, attributes: nil)return filePath}
}
有问题或建议 请联系
Kingfisher 5.13~ UIImageView、UIButton类扩展加载 网络图片相关推荐
- 这篇文章绝对让你深刻理解java类的加载以及ClassLoader源码分析
前言 package com.jvm.classloader;class Father2{public static String strFather="HelloJVM_Father&qu ...
- 尚硅谷 宋红康 JVM教程_02_字节码与类的加载篇
本系列相关链接 尚硅谷 宋红康 JVM教程_01_内存与垃圾回收篇--01 (20210103-20210110) https://blog.csdn.net/wei198621/article/de ...
- 类加载器 - 类的加载、连接与初始化
类的加载.连接与初始化 系统流小说 www.kuwx.net 概述 在Java代码中,类型的加载.连接与初始化过程都是在程序运行期间完成的 类型:可以理解为一个class 加载:查找并加载类的二进制数 ...
- JVM中篇:字节码与类的加载篇
0.概述 0.1字节码文件的跨平台性 0.1.1.Java语言:跨平台的语言(write once,run anywhere) 当]ava源代码成功编译成字节码后,如果想在不同的平台上面运行,则无须再 ...
- JVM-01:类的加载机制
本文从 纯洁的微笑的博客 转载 原地址:http://www.ityouknow.com/jvm.html 类的加载机制 1.什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内 ...
- Java虚拟机 —— 类的加载机制
我们知道class文件中存储了类的描述信息和各种细节的数据,在运行Java程序时,虚拟机需要先将类的这些数据加载到内存中,并经过校验.转换.解析和初始化过后,最终形成可以直接使用的Java类型. 类从 ...
- OpenCV中使用类VideoCapture加载视频和打开摄像头
先直接上示例代码,然后对代码进行讲解. #!/usr/bin/env python # -*- coding: utf-8 -*- # 图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 248 ...
- 初识jvm-1.Java类的加载机制
转载: jvm系列---纯洁的微笑 地址: http://www.ityouknow.com/jvm.html 1.什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其 ...
- 从JVM看类的加载过程与对象实例化过程
一. 类的加载过程 1. 类的加载过程大致是个什么过程? 我们编写产生.java文件,这些.java文件经过Java编译器编译成拓展名为.class的文件,.class文件中保存着Java代码经转换后 ...
最新文章
- 使用Docker快速搭建PHP开发环境
- elementary OS 6 评测!
- Qt学习五 - 对话框
- 如何解决连接不上us.archive.ubuntu.com
- Android 多状态加载布局的开发 Tips
- mysql wb bbu_BBU
- socket android用法,Android NDK中socket的用法以及注意事项分析
- 为什么稀疏自编码器的正则项选用了相对熵(KL散度)的函数?
- proxmoxve打造云桌面_最大亮点!山东众志电子为山东财经大学东方学院打造首个200点位云桌面考场...
- TABLE与DIV的取舍
- 经典神经网络 -- GoogLeNet / Inception : 设计原理与pytorch实现
- DCEP | 农行将上线数字人民币刷脸支付
- Windows客户端使用教程
- Elascicsearch集群搭建
- 《Using OpenRefine》翻译~8
- MessagingTimeout: Timed out waiting for a reply to message ID
- 电脑连接热点无internet访问权限_电脑连接手机热点时出来无internet安全是什么意思?...
- html5条件筛选jquery,jQuery实现多条件筛选
- 安装win10自带Linux子系统并用win10商店安装win10自带的Ubuntu
- 弧形背景html,弧形背景墙—弧形背景墙相关知识介绍