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;
    }
  • 相关阅读:
    UIActivityIndicatorView的详细使用
    iOS开发多线程篇—GCD的常见用法
    UIScrollView的属性总结
    关于UIView的autoresizingMask属性的研究
    Robot FrameWork 教程链接
    数据恢复基础知识
    数据恢复基础知识
    selenium webdriver 学习笔记(三)
    selenium webdriver 学习笔记(二)
    selenium webdriver 学习笔记(一)
  • 原文地址:https://www.cnblogs.com/dlwj/p/5896574.html
Copyright © 2011-2022 走看看