控制上传图片大小

图片上传问题:上传到服务器的图片建议压缩一下,因为iphone拍出的照片比较大,如果直接上传无论是上传还是下载都比较慢而且费流量,体验不好.

具体思路如下:

先调整分辨率,分辨率可以自己设定一个值,大于的就缩小到这分辨率,小余的就保持原本分辨率。然后在根据最终大小来设置压缩比,比如传入maxSize = 100k,最终计算大概这个大小的压缩比。基本上最终出来的图片数据根据当前分辨率能保持差不多的大小同时不至于太模糊,跟微信,微博最终效果应该是差不多的,代码仍然有待优化!

//控制图片大小

- (NSData *)resetSizeOfImageData:(UIImage *)source_image maxSize:(NSInteger)maxSize

{

//先调整分辨率

CGSize newSize = CGSizeMake(source_image.size.width, source_image.size.height);

CGFloat tempHeight = newSize.height / 1024;

CGFloat tempWidth = newSize.width / 1024;

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

newSize = CGSizeMake(source_image.size.width / tempWidth, source_image.size.height / tempWidth);

}

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

newSize = CGSizeMake(source_image.size.width / tempHeight, source_image.size.height / tempHeight);

}

UIGraphicsBeginImageContext(newSize);

[source_image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];

UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

//调整大小

NSData *imageData = UIImageJPEGRepresentation(newImage,1.0);

NSUInteger sizeOrigin = [imageData length];

NSUInteger sizeOriginKB = sizeOrigin / 1024;

if (sizeOriginKB > maxSize) {

NSData *finallImageData = UIImageJPEGRepresentation(newImage,0.50);

return finallImageData;

}

return imageData;

}

时间: 2024-10-17 06:33:00

控制上传图片大小的相关文章

织梦cms,dedecms,控制上传图片大小

根目录\include\dialog\select_images_post.php 在第13行添加如下代码 //获取上传文件大小$fileInfo=$_FILES['imgfile']['size'];$fileSize=round(($fileInfo/1024),1);//在需要判断的地方用if语句if ($fileSize >= 200){ //图片大小.单位为KB ShowMsg("图片过大,请上传小于200KB的图片,请关闭窗口重新上传!"); exit();}

html页面控制字体大小的js代码

控制显示文章字体大小的js代码 1 <head> 2 3 4 <script type="text/javascript"> 5 6 function check(size){ 7 document.getElementById("mycode").style.fontSize=size+"pt"; 8 } 9 10 </script> 11 </head> 12 13 <body> 1

Javascript 验证上传图片大小[客户端验证]

需求分析: 在做上传图片的时候,如果不限制上传图片大小,后果非常的严重.那么我们怎样才可以解决一个棘手的问题呢?有两种方式: 1)后台处理: 也就是AJAX POST提交到后台,把图片上传到服务器上,然后获得该图片大小做处理. 2)前台处理: 也就是利用Javascript获取该图片大小. 显然第一种方式,很不好.因为需要把文件先上传到服务器上,如果文件很大的话,在加上网不是很快,需要等待好长时间,治标不治本. 功能解析: 在这里我只介绍IE与FireFox两个浏览器的不同做法. IE6: 关键

Javascript验证上传图片大小[前台处理]

需求分析: 在做上传图片的时候,如果不限制上传图片大小,后果非常的严重.那么我们怎样才可以解决一个棘手的问题呢?有两种方式: 1)后台处理: 也就是AJAX POST提交到后台,把图片上传到服务器上,然后获得该图片大小做处理. 2)前台处理: 也就是利用Javascript获取该图片大小. 显然第一种方式,很不好.因为需要把文件先上传到服务器上,如果文件很大的话,在加上网不是很快,需要等待好长时间,治标不治本. 功能解析: 在这里我只介绍IE与FireFox两个浏览器的不同做法. IE6: 关键

检验上传图片大小、尺寸、类型的两种实现方案

做图片上传功能时,我们经常会遇到一个问题就是,就是要对上传的图片进行一个校验,校验的东西包括图片的大小.尺寸(即宽和高)以及图片的类型. 今天我主要介绍两种方式来进行图片的校验,一种是在前端用js校验,另一种是放在服务器端校验.接下来我们来进行介绍 第一种:放在前端用js校验 下面直接贴源代码,注释也写在代码里面 1 <%@ page language="java" contenttype="text/html; charset=UTF-8" pageenco

移动端通过js来用rem控制字体大小的用法

通过js来控制页面字体大小,直接上代码: (function() { var rootHtml = $(":root"); var rootResize = function() { var fontSize = $(window).width() < 640 ? $(window).width() / 16 : 40; rootHtml.css("font-size", fontSize); } rootResize(); $(window).resize(

css控制文字大小及颜色、字体

字体:font-style:italic:斜体         font-weight:bold:加粗         font-size:30px:大小         line-height:30px:行高         font-family:“SimHei”:字体 以上必须按顺序来,有些可以不写: 分开写和一行控制: 注: font-size与 line-height之间的像素要用斜线区分开:   <style>#test1{color:red;font-style:italic;

上传文件脚本控制格式大小.js

1 var iReporterID = 0; 2 var row = 0; 3 4 var $D = YAHOO.util.Dom; 5 var $E = YAHOO.util.Event; 6 var $C = YAHOO.util.Connect; 7 var $V = YAHOO.util.ValidationManager; 8 var $ = $D.get; 9 var $P = EGOVA.page.PageUtils; 10 var timer = null; 11 var cal

用CSS控制图片大小显示的方法

图片自动适应大小是一个非常常用的功能,在进行制作的时候为了防止图片撑开容器而对图片的尺寸进行必要的控制,我们可不可以用CSS控制图片使它自适应大小呢? 可以通过按比例缩小或者放大到某尺寸(自己指定),来保持图片不变形走样的完全显示. 对于标准浏览器(如Chrome/Firefox),或者IE7/8浏览器,直接使用max-width,max-height:或者min-width,min-height的CSS属性即可.如: 我们想到了一个比较简单的解决方法,虽然不是非常的完美,如果您的要求不是非常高