
- (UIImage *)getGrayImage:(UIImage*)image {
CGRect imageRect = CGRectMake(0, 0, image.size.width, image.size.height)
// 创建gray的CGColorSpaceRef
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceGray()
// 创建CGContextRef
CGContextRef
context = CGBitmapContextCreate(nil, image.size.width,
image.size.height, 8, 0, colorSpace, kCGImageAlphaNone)
CGContextDrawImage(context, imageRect, [image CGImage])
CGImageRef imageRef = CGBitmapContextCreateImage(context)
UIImage *grayImage = [UIImage imageWithCGImage:imageRef]
CGColorSpaceRelease(colorSpace)
CGContextRelease(context)
CFRelease(imageRef)
return grayImage
}
- (UIImage *)getShowImage:(UIImage *)image size:(CGSize)size direction:(int)direction {
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB()
CGContextRef
context = CGBitmapContextCreate(nil, size.width, size.height, 8, 0,
colorSpace, kCGBitmapByteOrder32Little | kCGImageAlphaNoneSkipLast)
CGRect imageRect = CGRectMake(0, 0, image.size.width, image.size.height)
if (direction == 1) {
//上面空白
imageRect = CGRectMake(0, 0, image.size.width, image.size.height)
} else if (direction == 2) {
//左面空白
imageRect = CGRectMake(size.width-image.size.width, 0, image.size.width, image.size.height)
}
CGContextDrawImage(context, imageRect, [image CGImage])
CGImageRef imageRef = CGBitmapContextCreateImage(context)
UIImage *showImage = [UIImage imageWithCGImage:imageRef]
CGColorSpaceRelease(colorSpace)
CGContextRelease(context)
CFRelease(imageRef)
return showImage
}
你看看吧,弄一下,这个功能我原来弄过。圆形可以用imageView实现
imageView.layer.masksToBounds = YES
imageView.layer.cornerRadius = 40.0f// 半径根据imageView大小一半儿设定
#pragma mark -这里是实现了图片遮罩picImageview=[[UIImageView alloc]init]
int a=3
picImageview.frame=CGRectMake(0, 0, 180*a, 250*a)
UIImage * picImage =[UIImage imageNamed:@"1.png"]
picImageview.image=picImage
UIScrollView *s=[[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, 180, 250)]
s.backgroundColor=[UIColor redColor]
s.contentSize=CGSizeMake(180*a, 250*a)
[s addSubview:picImageview]
//遮罩层的图片
CALayer *maskLayer=[CALayer layer]
maskLayer.frame=CGRectMake(0, 0, 180, 250)
UIImage * maskImage =[UIImage imageNamed:@"abc.png"]
maskLayer.contents=(__bridge id)maskImage.CGImage
UIView *aaaa=[[UIView alloc]initWithFrame:CGRectMake(0, 80, 180, 250)]
aaaa.userInteractionEnabled=YES
aaaa.layer.mask=maskLayer
[aaaa addSubview:s]
[self.view addSubview:aaaa]
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)