美文网首页工具iOS开发
iOS下实现截屏并保存

iOS下实现截屏并保存

作者: 云无心 | 来源:发表于2016-02-24 16:17 被阅读3999次

如何在代码中实现 截屏并保存至系统相册
写在前面,系统截屏并没有想象中那么难

1.保存当前界面的图片(截图)这个函数
- (UIImage *)captureCurrentView:(UIView *)view {
CGRect frame = view.frame;
UIGraphicsBeginImageContext(frame.size);
CGContextRef contextRef = UIGraphicsGetCurrentContext();
[view.layer renderInContext:contextRef];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}

2.保存图片,里面方法是成功保存或者失败回调

- (void)saveImageToPhotos:(UIImage *)image {
    UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:),nil)
}

3.回调方法(成功或者失败),在这里可以出现个动画之类的
- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo {
if (error == nil) {
NSLog(@"保存成功");
} else {
NSLog(@"失败");
}
}

4.试试吧
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{

    UIImage *image = [self captureCurrentView:self.view];
    [self saveImageToPhotos:image];
 }

相关文章

  • iOS下实现截屏并保存

    如何在代码中实现 截屏并保存至系统相册写在前面,系统截屏并没有想象中那么难 1.保存当前界面的图片(截图)这个函数...

  • iOS 截屏并保存图片

    在应用内截取屏幕 - (UIImage *)captureImageFromView:(UIView *)view...

  • Unity踩坑日志:关于unity与iOS交互的坑

    在原生中调用unity导出的iOS工程 1.一个需求是进行截屏,同时隐藏UI,截屏之后显示UI,并显示“已保存至系...

  • RN 中截屏react-native-view-shot

    应用场景: 对应用中的某一个界面进行截屏并保存(Android 和 IOS) (特殊情况是对该截屏进行图片拼接,本...

  • adb shell 截屏与录屏

    截屏 adb shell screencap -p /sdcard/screenhot.png 截屏并保存在指定目...

  • iOS 区域截屏并长按保存

    对指定View截取并使用长按手势进行保存 效果: PS:生成二维码

  • Android 截屏方式整理

    Android 实现截屏方式整理 可能的需求: 截自己的屏 截所有的屏 带导航栏截屏 不带导航栏截屏 截屏并编辑选...

  • (最新)iOS截屏

    ios webview 截屏:ios截屏 前言:介绍一下截屏有很多种做法1:截当前屏幕内容2:截整个视图的所有内容...

  • iOS 应用内截屏分享

    需求:捕获用户截屏操作,并建议用户截屏后的操作。虽然iOS11 有系统的截屏,但 APP 内截屏可便捷操作。 封装...

  • ScreenShotUtils--Android实现截屏并保存在

    添加权限(AndroidManifest.xml文件里) 实现截屏(Java代码) 转自Android实现截屏并保...

网友评论

  • 奔跑的蔬菜:这个方法截出来的图是模糊的
    CrystalZhu:UIGraphicsBeginImageContextWithOptions(self.bounds.size, false, 0)// 开始截取画图板
    self.layer.render(in: UIGraphicsGetCurrentContext()!)
    let img : UIImage = UIGraphicsGetImageFromCurrentImageContext()! // 截取到的图像
    UIGraphicsEndImageContext() // 结束截取

    void UIGraphicsBeginImageContextWithOptions(CGSize size, BOOL opaque, CGFloat scale);

    size——同UIGraphicsBeginImageContext

    opaque—透明开关,如果图形完全不用透明,设置为YES以优化位图的存储。

    scale—–缩放因子
    这里需要判断一下UIGraphicsBeginImageContextWithOptions是否为NULL,因为它是iOS 4.0才加入的 设置为0就不会模糊了
    6a90a9372b7b:是模糊的,有没有解决办法
  • 超_iOS:学习了
    超_iOS:@云无心 时隔半年我又来了,请问可以保存到指定位置么
    云无心:@小菜超 你可以点进UIImageWriteToSavedPhotosAlbum 这个方法里面看apple的说法,这个方法是推荐使用的
    超_iOS:@小菜超
    - (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo
    这个方法的ERROR 是怎么来的? contextInfo 有什么用啊

本文标题:iOS下实现截屏并保存

本文链接:https://www.haomeiwen.com/subject/kjrikttx.html