iOS图片的处理
来源:互联网 发布:新浪网络运营文职岗 编辑:程序博客网 时间:2024/06/04 20:03
一、有时候图片过大,我们只想要图片的一部分,如下函数能帮你处理:
/** 截取图片的一部分 */- (UIImage *)capturePartOfImage:(UIImage *)imgeSource { //要截取的区域 CGRect frameTemp = CGRectMake(imgeSource.size.width/2, imgeSource.size.height/2, 40, 40); //原图 CGImageRef imageSourceRef = imgeSource.CGImage; CGImageRef subImageRef = CGImageCreateWithImageInRect(imageSourceRef, frameTemp); //尺寸大小 CGSize size = frameTemp.size; UIGraphicsBeginImageContext(size); CGContextRef context = UIGraphicsGetCurrentContext(); CGContextDrawImage(context, frameTemp, subImageRef); UIImage *img = [UIImage imageWithCGImage:subImageRef]; UIGraphicsEndImageContext(); return img;}
二、图片的合成及重新绘制
/** 图片的合成及重绘 */- (UIImage *)redrawImage:(UIImage *)ImageFirst imageSecond:(UIImage *)imageSecond { UIGraphicsBeginImageContext(CGSizeMake(100, 100)); [ImageFirst drawInRect:CGRectMake(0, 0, 50, 100)]; [imageSecond drawInRect:CGRectMake(50, 0, 50, 50)]; UIImage *img = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return img;}
三、UIView生成图片
/** 将一个view制作为图片 */- (UIImage *)captureView:(UIView *)view { CGRect rect = view.frame; UIGraphicsBeginImageContext(rect.size); CGContextRef context = UIGraphicsGetCurrentContext(); [view.layer renderInContext:context]; UIImage *img = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return img;}
四、图片保存到App的沙盒
//路径NSString *path = [[NSHomeDirectory()stringByAppendingPathComponent:@"Documents"]stringByAppendingPathComponent:@"image.png"];//存储[UIImagePNGRepresentation(image) writeToFile:path atomically:YES];
五、保存到手机图片库
//保存到相册UIImageWriteToSavedPhotosAlbum(image, self, nil, nil);
六、尺寸大小的计算
/** 自动计算尺寸 */ CGRect rect = AVMakeRectWithAspectRatioInsideRect(image.size, imageView.bounds) /** 计算缩放的尺寸 */ CGSize sizeCal = CGSizeApplyAffineTransform(imgeSource.size, CGAffineTransformMakeScale(0.5, 0.5));
七、其它
// 另一:使用Core Graphics创建倒影- (CGImageRef) createGradientImage:(CGSize)size { CGFloat colors[] = {0.0,1.0,1.0,1.0}; //在灰色设备色彩上建立一渐变 CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceGray(); CGContextRef context = CGBitmapContextCreate(nil,size.width,size.height,8,0,colorSpace,kCGImageAlphaNone); CGGradientRef gradient = CGGradientCreateWithColorComponents(colorSpace,colors,NULL,2); CGColorSpaceRelease(colorSpace); //绘制线性渐变 CGPoint p1 = CGPointZero; CGPoint p2 = CGPointMake(0,size.height); CGContextDrawLinearGradient(context,gradient,p1,p2,kCGGradientDrawsAfterEndLocation); //Return the CGImage CGImageRef theCGImage = CGBitmapContextCreateImage(context); CFRelease(gradient); CGContextRelease(context); return theCGImage;}const CGFloat kReflectPercent = -0.25f;const CGFloat kReflectOpacity = 0.3f;const CGFloat kReflectDistance = 10.0f;- (void)addSimpleReflectionToView:(UIView *)theView { CALayer *reflectionLayer = [CALayer layer]; reflectionLayer.contents = [theView layer].contents; reflectionLayer.opacity = kReflectOpacity; reflectionLayer.frame = CGRectMake(0.0f,0.0f,theView.frame.size.width,theView.frame.size.height*kReflectPercent); //倒影层框架设置,其中高度是原视图的百分比 CATransform3D stransform = CATransform3DMakeScale(1.0f,-1.0f,1.0f); CATransform3D transform = CATransform3DTranslate(stransform,0.0f,-(kReflectDistance + theView.frame.size.height),0.0f); reflectionLayer.transform = transform; reflectionLayer.sublayerTransform = reflectionLayer.transform; [[theView layer] addSublayer:reflectionLayer];}
1 0
- ios图片的处理
- iOS图片的处理
- iOS图片的处理
- iOS图片的处理
- ios 对图片的处理
- iOS App图片的处理
- iOS 图片的处理小结
- ios图片的压缩处理
- iOS 处理图片的技巧
- IOS 图片图像的处理
- IOS 处理图片要注意的地方
- ios ---常用的图片处理技术
- iOS中图片的处理函数
- iOS中图片的拉伸处理技巧
- iOS 关于图片处理的一些方法。。。
- 有关ios中图片的处理
- ios ---常用的图片处理技术
- iOS 处理图片的一些小 Tip
- fiddler 手机 https 抓包
- MySQL 修改数据库的Schema方法
- 在 CSS 中,width 和 height 指的是内容区域的宽度和高度
- 继承多态灯泡发光问题
- “makefile:2: *** 遗漏分隔符 。 停止。” 问题
- iOS图片的处理
- 怎样制作CorelDRAW中写意水墨画效果
- SQL删除重复数据只保留一条
- 猫哥带你去战斗——Java Web开发——开发环境介绍[1]
- mysql查询结果编号
- 浅谈Nginx负载均衡与F5的区别
- 比较靠谱的分销商城说明
- Rails命令行常用操作命令简明总结
- C# Sql Server、Access、My SQL 数据库连接配置