gpt4 book ai didi

在iOS开发的Quartz2D使用中实现图片剪切和截屏功能

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章在iOS开发的Quartz2D使用中实现图片剪切和截屏功能由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

图片剪切 1、使用quartz2d完成图片剪切 1.把图片显示在自定义的view中 先把图片绘制到view上。按照原始大小,把图片绘制到一个点上。 代码:

复制代码 代码如下:

- (void)drawrect:(cgrect)rect
{
    uiimage *image2=[uiimage imagenamed:@"me"];
    [image2 drawatpoint:cgpointmake(100, 100)];
}

显示:

  。

在iOS开发的Quartz2D使用中实现图片剪切和截屏功能

2.剪切图片让图片圆形展示 思路:先画一个圆,让图片显示在圆的内部,超出的部分不显示.

在iOS开发的Quartz2D使用中实现图片剪切和截屏功能在iOS开发的Quartz2D使用中实现图片剪切和截屏功能

注意:显示的范围只限于指定的剪切范围,无论往上下文中绘制什么东西,只要超出了这个范围的都不会显示。 代码:

复制代码 代码如下:

- (void)drawrect:(cgrect)rect
{
    //画圆,以便以后指定可以显示图片的范围
    //获取图形上下文
    cgcontextref ctx=uigraphicsgetcurrentcontext();
    cgcontextaddellipseinrect(ctx, cgrectmake(100, 100, 50, 50));
   
    //指定上下文中可以显示内容的范围就是圆的范围
    cgcontextclip(ctx);
    uiimage *image2=[uiimage imagenamed:@"me"];
    [image2 drawatpoint:cgpointmake(100, 100)];
}

显示:

  。

在iOS开发的Quartz2D使用中实现图片剪切和截屏功能

3.剪切图片让图片三角形展示 代码:

复制代码 代码如下:

- (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)]; } 。

显示:

  。

在iOS开发的Quartz2D使用中实现图片剪切和截屏功能

截屏 1、简单说明 。

在程序开发中,有时候需要截取屏幕上的某一块内容,比如捕鱼达人游戏。如图:

在iOS开发的Quartz2D使用中实现图片剪切和截屏功能

2、代码示例 。

  storyboard界面搭建 。

在iOS开发的Quartz2D使用中实现图片剪切和截屏功能

代码:

复制代码 代码如下:

// //  yyviewcontroller.m //  01-截屏 // //  created by apple on 14-6-12. //  copyright (c) 2014年 itcase. all rights reserved. // 。

  。

#import "yyviewcontroller.h" #import "mbprogresshud+nj.h" 。

@interface yyviewcontroller () @property (weak, nonatomic) iboutlet uiview *contentview; - (ibaction)btnclick:(uibutton *)sender,

@end 。

  。

复制代码 代码如下:

@implementation yyviewcontroller 。

  。

- (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 。

把截取的图片保存到手机的相册中:

  。

在iOS开发的Quartz2D使用中实现图片剪切和截屏功能

说明:把整个屏幕画到一张图片里 1.创建一个bitmap的上下文 2.将屏幕绘制带上下文中 3.从上下文中取出绘制好的图片 4.保存图片到相册 补充:把图片写入到文件的代码 。

复制代码 代码如下:

//3.从上下文中取出绘制好的图片
     uiimage *newimage = uigraphicsgetimagefromcurrentimagecontext();
    
     nsdata *data = uiimagepngrepresentation(newimage);
    
     nsstring *path = [[nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes) lastobject] stringbyappendingpathcomponent:@"abc.png"];
     nslog(@"%@", path);
     [data writetofile:path atomically:yes];

3、补充 保存成功和保存失败之后应该做些事情? 系统推荐的方法:

复制代码 代码如下:

- (void)image:(uiimage *)image didfinishsavingwitherror:(nserror *)error contextinfo:(void *)contextinfo
{
    if (error) {
        [mbprogresshud showerror:@"保存失败,请检查是否拥有相关的权限"];
    }else
    {
//        [mbprogresshud showmessage:@"保存成功!"];
        [mbprogresshud showsuccess:@"保存成功!"];
    }
}

如果图片成功保存的话,那么就提示保存成功。 如果保存失败,那么提示失败 提示:保存失败常见有两个原因:1是内存不够,2是手机内部的权限不允许。 说明:如果当一个应用程序想要访问通讯录或相册,用户已经明确拒绝过,那么以后再要访问的话会直接拒绝。这个时候,可以提示用户去开启权限.

最后此篇关于在iOS开发的Quartz2D使用中实现图片剪切和截屏功能的文章就讲到这里了,如果你想了解更多关于在iOS开发的Quartz2D使用中实现图片剪切和截屏功能的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com