web应用开发&研究 - 创建于 2014年8月17日

这是一位web前端开发工程师的个人站,内容主要是网站开发方面的技术文章,大部分来自学习或工作,部分来源于网络,希望对大家有所帮助。

致力于web应用开发&研究工作,专注web前端开发,关注互联网前沿技术与趋势。


Font Awesome | Respond.js | Bootstrap中文网

图片处理

1.图片等比压缩

- (UIImage *)scaleToSize:(UIImage *)img size:(CGSize)size{  

      // 创建一个bitmap的context    

    // 并把它设置成为当前正在使用的context    
    UIGraphicsBeginImageContext(size);    
    // 绘制改变大小的图片    
    [img drawInRect:CGRectMake(0,0, size.width, size.height)];    
    // 从当前context中创建一个改变大小后的图片    
    UIImage* scaledImage =UIGraphicsGetImageFromCurrentImageContext();    
    // 使当前的context出堆栈    
    UIGraphicsEndImageContext();    
    //返回新的改变大小后的图片    
    return scaledImage;    
} 

2.图片大小压缩

+(NSData *)imageData:(UIImage *)myimage{

    NSData *data=UIImageJPEGRepresentation(myimage, 1.0);

    if (data.length>100*1024) {

        data = UIImageJPEGRepresentation(myimage, data.length/(300.0*1024));

    }

    return data;

}

3.图像截取

CGImageRef subImageRef = CGImageCreateWithImageInRect(image.CGImage, rect);

CGRect smallBounds = CGRectMake(0, 0, CGImageGetWidth(subImageRef), CGImageGetHeight(subImageRef));

UIGraphicsBeginImageContext(smallBounds.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextDrawImage(context, smallBounds, subImageRef);
UIImage* smallImage = [UIImage imageWithCGImage:subImageRef];
UIGraphicsEndImageContext();

return smallImage;

 4.通过CGContext截取图片

 

- (void)drawRect:(CGRect)rect{ 
     //画三角形,以便以后指定可以显示图片的范围
     //获取图形上下文
     CGContextRef ctx=UIGraphicsGetCurrentContext();
     //CGContextAddEllipseInRect(ctx, CGRectMake(100, 100, 50, 50));
     CGContextMoveToPoint(ctx, 100, 100);
     CGContextAddLineToPoint(ctx, 60, 150);
      CGContextAddLineToPoint(ctx, 140, 150);
     CGContextClosePath(ctx);
     //注意:指定范围(也就是指定剪切的方法一定要在绘制范围之前进行调用)
     //指定上下文中可以显示内容的范围就是圆的范围
     CGContextClip(ctx);
     UIImage *image2=[UIImage imageNamed:@"me"];
     [image2 drawAtPoint:CGPointMake(100, 100)];
}

 

 

 



posted @ 2016-08-17 11:29  Star1108  阅读(225)  评论(0编辑  收藏  举报