图片上传服务器的而终极解决方案 【转载】

/**
 *  动态发布图片压缩
 *
 *  @param source_image 原图image
 *  @param maxSize      限定的图片大小
 *
 *  @return 返回处理后的图片
 */
- (NSData *)resetSizeOfImageData:(UIImage *)source_image maxSize:(NSInteger)maxSize;

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

//传入的第二个参数 是100  代表 100k gzz0706

- (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-12-12 23:53:05

图片上传服务器的而终极解决方案 【转载】的相关文章

【图片】移动端图片上传旋转、压缩的解决方案

移动端图片上传旋转.压缩的解决方案 来源 知乎    作者 林鑫 工作上有手机上传准考证等图片的功能,这个是非常必要的,作者写的很全面,就直接记录这个地址了 还有一篇 文件的上传.下载

php图片上传服务器

原理是把图片上传到服务器的某个目录,然后在把他的名字存入数据库,或者不需要数据库这部分也行.读取的时候直接读取名字. HTML提交表格 <form method="post" action="upload_image_todb.php?name=<?php echo $username;?>" enctype="multipart/form-data"> <table> <h4>选择图片 <s

图片上传服务器压缩工具类

这个是我整理调试的图片上传工具类:只需要图片路径方可:大家可以直接使用:希望可以帮助到大家:代码如下: package com.wyy.twodimcode.push; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; impo

C#图片上传服务器缩放存储功能

项目需求上需要用户上传头像.本来是用第三方的插件的.但是很多都是收费的. 不过,我需要花这钱么?是不?所以网络上搜集了些资料.. 果然.这个世界 大神是很多很多的. 用了个免费插件. <script src="../Scripts/ajaxFileUpload.js" type="text/javascript"></script> 这玩意儿真心强大. 图片传到服务器了. 然后问题来了.图片要缩放.本来是想裁剪的. 不过.真心很烦..裁剪也做

SpringMVC全局文件上传类型限制【终极解决方案】

各位小伙伴们,有没有遇到这种情况,在信息安全日益受到各方重视的当下,白帽子越来越多,相应的作为开发人员的安全意识也得与日俱增.但是呢,总会有各种各种的原因,会出现全局性系统性的问题,你无法解决,或者无从下手.怎么办?没办法,只有回归本质. 今天分享一个SpringMVC全局文件上传类型限制终极解决方案,为那些还在迷茫该如何处理全局性文件上传漏洞的小伙伴送来一份小礼物.在阅读我的代码之前,请看下面的一篇关于SpringMVC文件上传的博文摘要.博文地址http://exceptioneye.ite

JSP图片上传服务器

String operator = request.getParameter("operator"); //页面跳转的标识 String succeed="0";//记录是否上传成功 String fileName = "";//文件名字 String fileExt = ""; String filename1=""; if(operator!=null){ succeed="1";

Java - MultipartFile图片上传服务器,并且指定大小压缩

1 /*** 2 * 上传图片到服务器 并压缩 3 * 4 * @param myFile 文件 5 * @param request 6 * @return 7 */ 8 private Boolean UploadFile(MultipartFile myFile, int width, int height, HttpServletRequest request) { 9 Boolean sta = false; 10 InputStream is = null; 11 FileOutpu

Android图片上传(头像裁切+原图原样)

还是那句话,最近项目比较忙拖了很久这篇文章终于完成了! 先看一下效果图: (一)头像裁切.上传服务器(效果图) 一般都是有圆形显示头像的,这里我自定义了一个ImageView,页面很干净但是看着很上档次吧! 点击头像从底部弹出一个对话框,提示用户头像来自相机或者相册,这都是常规流程. 上传完成后默认的"程序员头像"换成了萌妹子 (二)普通图片上传服务器(效果图) 模仿QQ空间发动态的布局随意捏造一个界面出来 点击添加图片从底部弹出一个对话框,提示用户图片来自相机或者相册,这也都是常规流

移动端图片上传解决方案localResizeIMG先压缩后ajax无刷新上传

现在科技太发达,移动设备像素越来越高,随便一张照片2M+,但是要做移动端图片上传和pc上略有不同,移动端你不能去限制图片大小,让用户先处理图片再上传,这样不现实.所以理解的解决方案就是在上传先进行图片压缩,然后再把压缩后的图片上传到服务器. 一翻google之后,发现了localResizeIMG,它会对图片进行压缩成你指定宽度及质量度并转换成base64图片格式,那么我们就可以把这个base64通过ajax传到后台,再进行保存,先压缩后上传的目的就达到了. 处理过程 LocalResizeIM