详谈iPhoneX截图如何带

直接用iPhoneX截图后是没有圆角和刘海的,就像下面这样。

其实加圆角和刘海也很简单

第一步:截屏

第二步:打开我这个软件,并选取图片库中的那张图

第三步:添加圆角,刘海

第四步:将做好的图片保存到相册

还需要下边这张刘海的图片

可以上代码了(目前原图是固定的,没有从图片库选取)

//
// ViewController.m
// iPhoneXPhotoEdit
//
// Created by yfc on 2017/12/23.
// Copyright © 2017年 yfc. All rights reserved.
//
#import "ViewController.h"
#import <AssetsLibrary/AssetsLibrary.h>
#import <Photos/Photos.h>
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
 [super viewDidLoad];

 UIButton *btn = [[UIButton alloc]init];
 btn.frame = CGRectMake(10, 44, 350, 758);
 btn.frame = CGRectMake(0, 0, 375, 812);
 [btn setBackgroundImage:[UIImage imageNamed:@"IMG_3655.PNG"] forState:UIControlStateNormal];
 //添加圆角
 btn.layer.cornerRadius = 35 ;
 btn.layer.borderColor = [UIColor blackColor].CGColor;
 btn.layer.borderWidth = 2;
 [self.view addSubview:btn];
 btn.backgroundColor = [UIColor whiteColor];
 btn.clipsToBounds = YES;

 //添加刘海
 UIImageView *imageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"liuhai.png"]];
 imageView.frame = CGRectMake(70, 0, 222, 28);
 [btn addSubview:imageView];

 self.view.backgroundColor = [UIColor clearColor];

 //截图保存到相册
 dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
  [self saveBtnAction:nil];
 });

}
-(void)saveBtnAction:(UIButton *)sender{
 [self requestAuthorizationStatus];
}
//查看权限
- (void)requestAuthorizationStatus
{
 [PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status){
  dispatch_async(dispatch_get_main_queue(), ^{
   switch (status) {
    case PHAuthorizationStatusAuthorized:
    {
     [self cutScreen];
     break;
    }
    default://Denied
    {
     break;
    }
   }
  });
 }];
}
//截屏
-(void)cutScreen{
 UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, YES, 0.0);
 //2.获取当前图形上下文
 CGContextRef ctx = UIGraphicsGetCurrentContext();
 //3.获取需要截取的view的layer
 [self.view.layer renderInContext:ctx];
 //4.从当前上下文获取图片
 UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
 //5.关闭图形上下文
 UIGraphicsEndImageContext();
 //6.把图片保存到相册
 UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), NULL);
}
//保存成功后回调
-(void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo{
 NSString *msg = nil;
 if (error) {
  msg = @"图片保存失败";
 }else{
  msg = @"图片保存成功";
 }
 UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"提示" message:msg delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
 [alertView show];
}
@end

效果图是

以上这篇详谈iPhoneX截图如何带"刘海"和圆角就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 详谈iPhoneX截图如何带

    直接用iPhoneX截图后是没有圆角和刘海的,就像下面这样. 其实加圆角和刘海也很简单 第一步:截屏 第二步:打开我这个软件,并选取图片库中的那张图 第三步:添加圆角,刘海 第四步:将做好的图片保存到相册 还需要下边这张刘海的图片 可以上代码了(目前原图是固定的,没有从图片库选取) // // ViewController.m // iPhoneXPhotoEdit // // Created by yfc on 2017/12/23. // Copyright © 2017年 yfc. All

  • Android截屏截图的几种方法总结

    Android截屏 Android截屏的原理:获取具体需要截屏的区域的Bitmap,然后绘制在画布上,保存为图片后进行分享或者其它用途 一.Activity截屏 1.截Activity界面(包含空白的状态栏) /** * 根据指定的Activity截图(带空白的状态栏) * * @param context 要截图的Activity * @return Bitmap */ public static Bitmap shotActivity(Activity context) { View vie

  • Android截屏分享功能

    最近项目需要实现Android截屏分享功能,包括Android截屏获取图片.将图片保存到本地.通知系统相册更新.通过微信.QQ.微博分享截屏图片,本篇文章作为总结回顾.     一.Android截屏获取图片 通过对view进行绘制,得到bitmap,可以对Activity.Fragment进行绘制,也可以对其他的View进行绘制.    1 Activity截图(带空白的状态栏) public Bitmap shotScreen(Activity activity) { View view =

  • Python去除PDF水印的实现示例

    今天介绍下用 Python 去除 PDF (图片)的水印.思路很简单,代码也很简洁. 首先来考虑 Python 如何去除图片的水印,然后再将思路复用到 PDF 上面. 这张图片是前几天整理<数据结构和算法>PDF里的一个截图,带着公众号的水印. 从上图可以明显看到,为了不影响阅读正文,水印颜色一般比较浅.因此,我们可以利用颜色差这个特征来去掉水印.即:用 Python 读取图片的颜色,并将浅颜色部分变白. Python 标准库 PIL 可以获取图片的颜色,Python2 是系统自带的,Pyth

  • Extjs grid panel自带滚动条失效的解决方法

    之前用EXTJS的gridPanel组件的时候,因为经常对gridPanel中的stroe数据进行过滤,所以有时候总是导致gridPanel自身所带的scrollbar失效. 取个实例,EXTJS gridPanel自带的滚动条,是有一个固定的列宽来放置这个scrollbar的,如上图所示.所以当这个scrollbar失效的时候,无论你怎么拖动这个滚动条,grid中的数据永远都不会随scrollbar的移动而展示相应区域的数据(换句话说就是你永远看到的数据都是截图中的这几条record). 至于

  • python使用pyqt写带界面工具的示例代码

    上篇介绍的使用python自带tkinter包,来写带界面的工具. 此篇介绍使用pyqt来开发测试工具. tkinter的好处是python官方自带,上手容易(但手写控件复杂),布局和摆放都不直观和容易,因为是像素坐标定位,需要花较长时间在界面开发上.pyqt是第三方gui开发工具,是目前公认的python上最好的客户端界面开发工具,因为控件是通过qt设计师的手动拖拽,调整颜色 字体 大小等样式也很简单,不需要去代码层面来写大量界面代码,真正的所见即所得. 学习pyqt需要安装这些文件,pyqt

  • Ajax带提示的验证表单实例

    本文实例讲述了Ajax带提示的验证表单.分享给大家供大家参考.具体如下: 这是一个常用的Ajax表单验证程序,实时提示你输入的字符是否符合要求,简洁明快,便于修改,这是用JavaScript实现的,没有掺杂其它的框架类代码,因此比较实用. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-ajax-table-check-codes/ 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.

  • extjs 学习笔记 四 带分页的grid

    因此,现在几乎所有的grid控件都会支持分页功能.extjs也不例外,它对分页也提供了强大而方便的支持,使得我们在分页处理上可以得心应手. 在extjs中,类Ext.PagingToolbar封装了关于分页的操作,该类从Toolbar继承而来,单从名字上看,我们也猜得出这是一个能够处理分页的工具栏.好吧,那我们就来看看如何构造这样一个工具栏吧.PagingToolbar类的构造函数需要一个json对象来进行配置,在js中,使用json对象来提供所需参数非常方便,这样使得我们可以只填写感兴趣的参数

  • 利用NodeJS和PhantomJS抓取网站页面信息以及网站截图

    利用PhantomJS做网页截图经济适用,但其API较少,做其他功能就比较吃力了.例如,其自带的Web Server Mongoose最高只能同时支持10个请求,指望他能独立成为一个服务是不怎么实际的.所以这里需要另一个语言来支撑服务,这里选用NodeJS来完成. 安装PhantomJS 首先,去PhantomJS官网下载对应平台的版本,或者下载源代码自行编译.然后将PhantomJS配置进环境变量,输入 $ phantomjs 如果有反应,那么就可以进行下一步了. 利用PhantomJS进行简

  • springMVC实现前台带进度条文件上传的示例代码

    项目框架采用spring+hibernate+springMVC如果上传文件不想使用flash那么你可以采用HTML5;截图前段模块是bootstarp框架;不废话直接来代码;spring-mvc配置文件;效果截图如下: 详细实现如下: 1.mvc-config.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/s

随机推荐