p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Menlo; color: #4dbf56; background-color: #282b35 }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Menlo; color: #ffffff; background-color: #282b35 }
p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Menlo; color: #ffffff; background-color: #282b35; min-height: 18.0px }
p.p4 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Menlo; color: #00afca; background-color: #282b35 }
span.s1 { color: #c2349b }
span.s2 { color: #00afca }
span.s3 { color: #8b84cf }
span.s4 { color: #ffffff }

///图片压缩方法

class func resetImgSize(sourceImage : UIImage,maxImageLenght : CGFloat,maxSizeKB : CGFloat) -> Data {

var maxSize = maxSizeKB

var maxImageSize = maxImageLenght

if (maxSize <= 0.0) {

maxSize = 1024.0;

}

if (maxImageSize <= 0.0)  {

maxImageSize = 1024.0;

}

//先调整分辨率

var newSize = CGSize.init(width: sourceImage.size.width, height: sourceImage.size.height)

let tempHeight = newSize.height / maxImageSize;

let tempWidth = newSize.width / maxImageSize;

if (tempWidth > 1.0 && tempWidth > tempHeight) {

newSize = CGSize.init(width: sourceImage.size.width / tempWidth, height: sourceImage.size.height / tempWidth)

}

else if (tempHeight > 1.0 && tempWidth < tempHeight){

newSize = CGSize.init(width: sourceImage.size.width / tempHeight, height: sourceImage.size.height / tempHeight)

}

UIGraphicsBeginImageContext(newSize)

sourceImage.draw(in: CGRect.init(x: 0, y: 0, width: newSize.width, height: newSize.height))

let newImage = UIGraphicsGetImageFromCurrentImageContext()

UIGraphicsEndImageContext()

var imageData = UIImageJPEGRepresentation(newImage!, 1.0)

var sizeOriginKB : CGFloat = CGFloat((imageData?.count)!) / 1024.0;

//调整大小

var resizeRate = 0.9;

while (sizeOriginKB > maxSize && resizeRate > 0.1) {

imageData = UIImageJPEGRepresentation(newImage!,CGFloat(resizeRate));

sizeOriginKB = CGFloat((imageData?.count)!) / 1024.0;

resizeRate -= 0.1;

}

return imageData!

}

最新swift4.0 图片进行尺寸大小及体积压缩的更多相关文章

  1. 批量改变图片的尺寸大小 python opencv

    我目标文件夹下有一大批图片,我要把它转变为指定尺寸大小的图片,用pthon和opencv实现的. 以上为原图片. import cv2 import os # 按指定图像大小调整尺寸 def resi ...

  2. Python3.7 练习题(三) 将指定目录下的图片进行批量尺寸大小处理

    # 将指定目录下的图片进行批量尺寸大小处理 #修改图片尺寸 导入Image os 快捷键 alt+enter import os from PIL import Image def process_i ...

  3. png图片尺寸大小调整

    Android 开发中经常遇到各种hdpi,xhdpi,xxhdpi....很多尺寸大小的png图片要求. 网上也有不少工具,今天我又发现一款在线转换大小的网站,用了一下,一个png 114X114 ...

  4. 如何用JavaScript在浏览器端获取图片的原始尺寸大小?

    var img = $("#img_id"); // Get my img elem var pic_real_width, pic_real_height; $("&l ...

  5. 移动端H5页面的设计稿尺寸大小规范-转载自http://www.chinaz.com/design/2015/1103/465670.shtml

    机屏幕尺寸,设计稿应该按照哪一个尺寸作为标准尺寸.现在已经有2K分辨率的手机屏幕了,设计稿是不是也要把宽高跟着最大分辨率来设计.显然不是. 请注意:(以下所有讨论内容和规范均将viewport设定为c ...

  6. 如何解决谷歌浏览器下jquery无法获取图片的尺寸

    代码如下: $(document).ready(function(){ var img_h=$img.height(); var img_w=$img.width(); }) 以上代码在IE和火狐中没 ...

  7. Cocos2d-x使用android拍照功能加载照片内存过大,通过另存照片尺寸大小解决

    使用2dx调用android拍照功能,拍照结束后在2dx界面显示拍照照片,如果不对照片做处理,会出现内存过大的问题,导致程序崩溃,如果仅仅另存拍照照片,则照片质量大小均下降,导致照片不够清晰,后来发现 ...

  8. 自定义控件,上图下字的Button,图片任意指定大小

    最近处在安卓培训期,把自己的所学写成博客和大家分享一下,今天学的是这个自定义控件,上图下字的Button安卓自带,但是苦于无法设置图片大小(可以在代码修改),今天自己做了一个,首先看一下效果图,比较实 ...

  9. iOS开发-App Icons的尺寸大小

    每个App中Icon的尺寸大小是不一样的,如果你添加部分尺寸的Icon,有些没有添加,xCode会给出相应的警告,最近遇到一个问题就是A 76x76 app icon is required for ...

随机推荐

  1. python之 json里字典中的value去重

    import simplejson as json with open(r'C:\Users\Desktop\test.txt', 'r' ) as f1, open(r'C:\Users\Deskt ...

  2. maven项目pom.xml配置文件依赖

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  3. 【new File(String Path)加载资源问题】

    2017-12-17   15:07:38  [原创-wx] 一.我们在用IO流加载资源的时候,创建文件资源 1 File file = New File("String Path" ...

  4. Linux上跑两个版本的php,5.4.45和5.3.24

    首先,装的实在艰难,所以容我吐槽两句: PHP好个P,两个小版本都不兼容,把这个php5.3.24放在5.4.45环境下都跑不了.对于我这种用多了向下兼容的java的人来说,简直无法想象! 网上有装俩 ...

  5. 自学Python5.1-模块简介

    模块简介 在C语言中如果要引用sqrt这个函数,必须用语句"#include<math.h>"引入math.h这个头文件,否则是无法正常进行调用的.那么在Python中 ...

  6. 自学Python3.3-字符串格式化 作用域 递归

    一.字符串格式化 二.作用域 三.递归

  7. 自学WPF之Binding(二)

    没有Source的Binding,使用ContentText作为Binding源: 上一篇是把CLR类型对象当作指定为Binding的Source,两种方法:一是把对象赋值给Binding.Sourc ...

  8. 虚拟机修改静态ip

    1.设置虚拟机的网络选择方式,使用NAT模式,选择这个模式后网段与主机的网段不是一个网段,一般选择桥接模式 2.选择VMnet8, 去掉 使用本地DHCP服务将ip分配给虚拟机 这个选项,不然设置ip ...

  9. 使用soap实现简单webservice

    在网上看到一些关于用soap实现简单webservice的一些知识,简单整理一下希望对大家有所帮助. 可以给大家看一下我的简单实现的列子,Soap,大家可以到Github上自行下载. 首先说一下web ...

  10. sudo,visudo

    visudo修改/etc/sudoers文件 用户名/%组名 主机名/主机别名/网段=(身份)命令 若(ALL)为空则为所有身份,即包含root身份 user1 ALL=/sbin/shutdown ...