• IOS - UIImage


    IOS中对图片的处理 UIImage



    UIImage 继承于NSObject
    以下介绍一下UIImage中的方法
    首先是我们最经常使用的

    通过图片的文件名称来获取这个图片
    + (UIImage *)imageNamed:(NSString *)name

    //要注意的是这种方法适用于已经导入到project中的图片


    //建议使用该方法获取图片(尤其是ios8系统下)

    NSString *imagePath = [[NSBundle mainBundle]pathForResource:@"sun" ofType:@"png"];

    UIImage *image = [[UIImage alloc]initWithContentsOfFile:imagePath];


    1、+ (UIImage *)imageWithContentsOfFile:(NSString *)path
    //通过文件载入指定路径下的文件内容获得新图片

    2、+ (UIImage *)imageWithData:(NSData *)data
    //通过一个NSData对象来获得图片
    3、+ (UIImage *)imageWithData:(NSData *)data scale:(CGFloat)scale
    //同上,仅仅是再加上一个图片大小比例,用来改变图片的大小

    4、+ (UIImage *)imageWithCGImage:(CGImageRef)cgImage
    //使用Quartz 2D对象创建UIImage
    5、+ (UIImage *)imageWithCGImage:(CGImageRef)imageRef scale:(CGFloat)scale orientation:(UIImageOrientation)orientation
    //制定图片的比例和方向。当中方向是个枚举类。

    6、+ (UIImage *)imageWithCIImage:(CIImage *)ciImage
    //用一个Core Image 对象创建图像
    7、+ (UIImage *)imageWithCIImage:(CIImage *)ciImage scale:(CGFloat)scale orientation:(UIImageOrientation)orientation
    //再加上比例和图片方向

    8、- (UIImage *)imageWithAlignmentRectInsets:(UIEdgeInsets)alignmentInsets
    //返回指定矩形区域内的图像

    9、+ (UIImage *)animatedImageNamed:(NSString *)name duration:(NSTimeInterval)duration
    //创建一个动态图片。动态图片持续的时间为duration
    10、+ (UIImage *)animatedImageWithImages:(NSArray *)images duration:(NSTimeInterval)duration
    //用一组图片创建一个动态图片。动态持续时间duration

    11、+ (UIImage *)animatedResizableImageNamed:(NSString *)name capInsets:(UIEdgeInsets)capInsets duration:(NSTimeInterval)duration
    //创建一个在可变大小的图片上指定矩形区域内的动态图片
    12、+ (UIImage *)animatedResizableImageNamed:(NSString *)name capInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingMode duration:(NSTimeInterval)duration
    //同上,仅仅是多了一个图片变化的方式。详细来说就是平铺或者拉伸

    13、- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets
    //用制定矩形区域创建图像
    14、- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingMode
    //同上。指定图片变化方式

    初始化图片


    方法的作用在从上面的一些方法中都能找到原型,这里就不一一凝视了
    1、– initWithContentsOfFile: //从文件载入图片
    2、– initWithData: //用NSData对象初始化图片
    3、– initWithData:scale: //用NSData对象,指定的比例,初始化图片
    4、– initWithCGImage:
    5、– initWithCGImage:scale:orientation:
    6、– initWithCIImage:
    7、– initWithCIImage:scale:orientation:


    绘绘图片

    1、– drawAtPoint:
    //在指定的点開始绘绘图片,这个点就是图片的做上角顶点
    2、- (void)drawAtPoint:(CGPoint)point blendMode:(CGBlendMode)blendMode alpha:(CGFloat)alpha
    //在指定的点绘制整个图片,并使用自己定义图片复合模式,并设置透明度

    3、– drawInRect:
    //在指定区域内绘制图片,可依据须要缩放图片
    4、– drawInRect:blendMode:alpha:
    //參照上面第二条
    5、– drawAsPatternInRect:
    //在指定区域内,平铺图片


    image的属性
    imageOrientation //图片的方向
    size //图片的大小size
    scale //图片的比例
    resizingMode //图片变化方式
    CGImage //潜在的Quartz image
    CIImage //潜在的Core Image
    images //返回一个由图片组成的数组,针对于由一组图片生成的动态图片
    duration //返回动态图片持续的时间(即动态图片播放一遍的时间)
    capInsets //图片上选定的区域

    alignmentRectInsets //图片平铺的区域




    //批量上传图片
    +(void)requestWithUrl:(NSString *)url params:(NSDictionary *)params picImageArray:(NSArray *)imageArry fileName:(NSArray *)fileNameArray success:(requestSuccess)successBlock progressBlock:(progerss)progress fail:(requestFail)failBlock
    {
        if (url==nil) { //给一个默认的把。

    。老是写好烦
            url=kTDGeneralURL;
        }
        AFHTTPRequestOperationManager *manager=[AFHTTPRequestOperationManager manager];
        AFHTTPRequestOperation* operation= [manager POST:url parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
            if (imageArry) {
                for (int i=0; i<imageArry.count; i++) {
                    NSData *picData = UIImageJPEGRepresentation(imageArry[i], 1);
                    [formData appendPartWithFileData:picData name:fileNameArray[i] fileName:@"image.jpg" mimeType:@"application/octet-stream"];
                }
            }
        } success:^(AFHTTPRequestOperation *operation, id responseObject) {
            if ([responseObject isKindOfClass:[NSDictionary class]]) {
                successBlock(responseObject);
            }
        } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
            
            failBlock(error);
        }];
        
        [operation setUploadProgressBlock:^(NSUInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite) {
            
            CGFloat pro=totalBytesWritten/(CGFloat)totalBytesExpectedToWrite;
            
            if (progress) {
                progress(pro);
            }
            
        }];
        
        
        [operation start];
        
    }




  • 相关阅读:
    install jprofiler for ubuntu
    android manifest相关属性
    install nginx for ubuntu
    Android shape
    mobile web for no cookie session
    Android布局属性
    什么是强类型,强类型集合
    radl (三) (转)
    几个.net 基础问题,自己回答了一些,请大家指教
    c#接口和抽象类的区别
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/5346086.html
Copyright © 2020-2023  润新知