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;
    }
  • 相关阅读:
    JQuery 选择器
    JQuery 快速入门教程二
    C++ 宏定义与空格
    正则表达式入门
    JQuery 淡出、 动画、显示/隐藏切换等效果
    jQuery 事件
    C# 序列化与反序列化
    HTML5学习笔记简明版(2):新元素之section,article,aside
    [解决]怎么查找maven的各个jar包依赖的是别的什么jar包
    ireport jasperreports4.7.0 生成pdf各种sb问题总结
  • 原文地址:https://www.cnblogs.com/dlwj/p/5896574.html
Copyright © 2011-2022 走看看