image处理相关
来源:互联网 发布:windows中菜单有3类 编辑:程序博客网 时间:2024/06/15 06:15
image做遮罩mask
原理性的东西请参考Quartz 2D Programming Guide - Bitmap Images and Image Masks,也可以参考iOS绘图教程
请参考:
- How to Mask an Image
- Mask and crop an image
- 【iPhone App開發】How to clip a UIImage?
实现方式是:
- (UIImage*) maskImage:(UIImage *)image withMask:(UIImage *)maskImage { CGImageRef maskRef = maskImage.CGImage; CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef), CGImageGetHeight(maskRef), CGImageGetBitsPerComponent(maskRef), CGImageGetBitsPerPixel(maskRef), CGImageGetBytesPerRow(maskRef), CGImageGetDataProvider(maskRef), NULL, false); CGImageRef masked = CGImageCreateWithMask([image CGImage], mask); return [UIImage imageWithCGImage:masked];}
另一种方式会使用到
CGContextClipToMask(context, self.bounds, mask);
例如iOS Programming Recipe 24: Creating a Mask for Clipping Drawings例子中,利用mask来实现一个渐变的圆圈
-(void)drawEllipseWithGradient:(CGContextRef)context{ CGContextSaveGState(context); //UIGraphicsBeginImageContextWith(self.frame.size); UIGraphicsBeginImageContextWithOptions((self.frame.size), NO, 0.0); CGContextRef newContext = UIGraphicsGetCurrentContext(); //Set color of current context [[UIColor blackColor] set]; //Draw ellipse <- I know we’re drawing a circle, but a circle is just a special ellipse. CGRect ellipseRect = CGRectMake(110.0f, 200.0f, 100.0f, 100.0f); CGContextFillEllipseInRect(newContext, ellipseRect); CGImageRef mask = CGBitmapContextCreateImage(UIGraphicsGetCurrentContext()); UIGraphicsEndImageContext(); CGContextClipToMask(context, self.bounds, mask); [self drawGradient:context]; CGImageRelease(mask); CGContextRestoreGState(context);}
CoreGraphic 遮色片應用中的例子也一样
UIImage *iconImage = [UIImage imageNamed:@"logo.png"];UIImage *maskImage = [UIImage imageNamed:@"mask.png"];UIGraphicsBeginImageContext(iconImage.size);//設定參考範圍CGContextRef context = UIGraphicsGetCurrentContext();CGContextScaleCTM(context, 1, -1);CGRect region = CGRectMake(0, 0, iconImage.size.width, iconImage.size.height);CGContextTranslateCTM(context, 0, -region.size.height);//將context做遮罩範圍的切割再drawCGContextClipToMask(context, region, maskImage.CGImage);CGContextDrawImage(context, region, iconImage.CGImage);//將影像指定給imageViewimageView.image = UIGraphicsGetImageFromCurrentImageContext();UIGraphicsEndImageContext();
0 0
- image处理相关
- vb相关 数据库开发应用 text/ntext/image处理
- Wince image相关工具
- Image 相关的类
- Universal-Image-Loader相关
- python-Image处理图片
- C# Image处理
- rails image 处理图片
- Image图片处理总结
- java Image大小处理
- scikit-image 图像处理
- python Image图形处理
- scikit-image 图像处理
- Image图片处理_Tool
- PhalApi-Image -- 图像处理
- Swift Image 的处理
- |Image$$RO$$Limit|相关问题
- C# Image的相关问题
- 最短路径算法CH
- 企业证书重签名发布APP(支持APNS)
- oracle存储过程如何返回list,并用jdbc调用
- url中的域名获取
- 剑指 offer:链表中倒数第k个结点
- image处理相关
- eclipse4.2(juno)各种插件安装(j2ee,m2e,maven-svn,svn,hibe
- 1003. 我要通过!
- 蓝懿学习之考试受挫
- TCP/IP
- 用ultraedit实现编码转换
- 小细节大作为:提高 iOS 访问权限通过率有这几个办法
- UITableView的使用详解
- memcached基本配置与使用