图片剪切
一、使用quartz2d完成图片剪切
1.把图片显示在自定义的view中
先把图片绘制到view上。按照原始大小,把图片绘制到一个点上。
代码:
2.剪切图片让图片圆形展示
思路:先画一个圆,让图片显示在圆的内部,超出的部分不显示。
注意:显示的范围只限于指定的剪切范围,无论往上下文中绘制什么东西,只要超出了这个范围的都不会显示。
代码:
3.剪切图片让图片三角形展示
代码:
//画三角形,以便以后指定可以显示图片的范围
//获取图形上下文
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)];
}
截屏
一、简单说明
在程序开发中,有时候需要截取屏幕上的某一块内容,比如捕鱼达人游戏。如图:
二、代码示例
storyboard界面搭建
代码:
#import "yyviewcontroller.h"
#import "mbprogresshud+nj.h"
@interface yyviewcontroller ()
@property (weak, nonatomic) iboutlet uiview *contentview;
- (ibaction)btnclick:(uibutton *)sender;
@end
- (void)viewdidload
{
[super viewdidload];
}
- (ibaction)btnclick:(uibutton *)sender {
//延迟两秒保存
dispatch_after(dispatch_time(dispatch_time_now, (int64_t)(2.0 * nsec_per_sec)), dispatch_get_main_queue(), ^{
//获取图形上下文
// uigraphicsbeginimagecontext(self.view.frame.size);
uigraphicsbeginimagecontext(self.contentview.frame.size);
//将view绘制到图形上下文中
// [self.view.layer renderincontext:uigraphicsgetcurrentcontext()];
[self.contentview.layer renderincontext:uigraphicsgetcurrentcontext()];
//将截屏保存到相册
uiimage *newimage=uigraphicsgetimagefromcurrentimagecontext();
uiimagewritetosavedphotosalbum(newimage,self, @selector(image:didfinishsavingwitherror:contextinfo:), nil);
});
}
- (void)image:(uiimage *)image didfinishsavingwitherror:(nserror *)error contextinfo:(void *)contextinfo
{
if (error) {
[mbprogresshud showerror:@"保存失败,请检查是否拥有相关的权限"];
}else
{
// [mbprogresshud showmessage:@"保存成功!"];
[mbprogresshud showsuccess:@"保存成功!"];
}
}
@end
说明:把整个屏幕画到一张图片里
1.创建一个bitmap的上下文
2.将屏幕绘制带上下文中
3.从上下文中取出绘制好的图片
4.保存图片到相册
补充:把图片写入到文件的代码
如对本文有疑问, 点击进行留言回复!!
牛客编程巅峰赛S1第6场 - 黄金&钻石&王者题解
纵横字谜的答案 Crossword Answers, ACM/ICPC World Finals 1994, UVa232
HDU - 5880 Family View (AC自动机修改母串)
iOS14Beta3续航怎么样 iOS14Beta3续航能力介绍
iOS14Beta3稳定性怎么样 iOS14Beta3升级建议介绍
网友评论