zoukankan      html  css  js  c++  java
  • 图片处理

    + (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) {
            
            NSUInteger testKB = sizeOriginKB;
            UIImage * testIamge = newImage;
            
            if (testKB > 4000) {
                imageData = UIImageJPEGRepresentation(newImage,0.10);
                testKB = [imageData length] / 1024;
                testIamge = [UIImage imageWithData:imageData];
            }
            if (testKB > 3000) {
                imageData = UIImageJPEGRepresentation(testIamge,0.20);
                testKB = [imageData length] / 1024;
                testIamge = [UIImage imageWithData:imageData];
            }
            if (testKB > 2000) {
                imageData = UIImageJPEGRepresentation(testIamge,0.30);
                testKB = [imageData length] / 1024;
                testIamge = [UIImage imageWithData:imageData];
            }
            if (testKB > 1000) {
                imageData = UIImageJPEGRepresentation(testIamge,0.40);
                testKB = [imageData length] / 1024;
                testIamge = [UIImage imageWithData:imageData];
            }
            if (testKB > 500) {
                imageData = UIImageJPEGRepresentation(testIamge,0.50);
                testKB = [imageData length] / 1024;
                testIamge = [UIImage imageWithData:imageData];
            }
            if (testKB > 300) {
                imageData = UIImageJPEGRepresentation(testIamge,0.50);
                testKB = [imageData length] / 1024;
                testIamge = [UIImage imageWithData:imageData];
            }
            if (testKB > maxSize) {
                imageData = UIImageJPEGRepresentation(testIamge,0.30);
                testKB = [imageData length] / 1024;
                testIamge = [UIImage imageWithData:imageData];
            }
            return imageData;
        }
        
        return imageData;
    }
  • 相关阅读:
    2018常用DOM操作总结
    emlog实现全站pjax无刷新加载页面
    深入理解Vuex 框架
    2018前端最火的web UI框架
    小程序快递单号查询
    表单元素系列二
    表单元素系列一
    表单提交
    AJAX 回调函数刷新页面问题
    electron 常用命令
  • 原文地址:https://www.cnblogs.com/dlwj/p/5896574.html
Copyright © 2011-2022 走看看