iOS_截屏并裁剪

截图使用场景:

iOS 7中的代码代段

// 使用上下文截图,并使用指定的区域裁剪,模板代码
- (void)screenShot
{
    // 将要被截图的view,即窗口的根控制器的view(必须不含状态栏,默认ios7中控制器是包含了状态栏的)
    BeyondViewController *beyondVC = self.view.window.rootViewController;
    // 背景图片 总的大小
    CGSize size = beyondVC.view.frame.size;
    // 开启上下文,使用参数之后,截出来的是原图(YES  0.0 质量高)
    UIGraphicsBeginImageContextWithOptions(size, YES, 0.0);
    // 裁剪的关键代码,要裁剪的矩形范围
    CGRect rect = CGRectMake(0, -20, size.width, size.height + 20 );
    //注:iOS7以后renderInContext:由drawViewHierarchyInRect:afterScreenUpdates:替代
    [beyondVC.view drawViewHierarchyInRect:rect  afterScreenUpdates:NO];
    // 从上下文中,取出UIImage
    UIImage *snapshot = UIGraphicsGetImageFromCurrentImageContext();
    // 添加截取好的图片到图片数组
    [_cutImages addObject:snapshot];

    // 千万记得,结束上下文(移除栈顶上下文)
    UIGraphicsEndImageContext();

}

iOS 6中的代码片段

// 使用上下文截图,模板代码
- (void)screenShot3
{
    // 将要被截图的view,窗口的根控制器的view(iOS6,默认控制器不含状态栏)
    BeyondViewController *beyondVC = self.view.window.rootViewController;
    UIView *cutView = beyondVC.view;
    // 开启上下文,使用参数之后,截出来的是原图(YES  0.0 质量高)
    UIGraphicsBeginImageContextWithOptions(cutView.frame.size, YES, 0.0);
    // 将cutView的图层渲染到上下文中
    [cutView.layer renderInContext:UIGraphicsGetCurrentContext()];
    // 取出UIImage
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    // 添加截取好的图片到图片数组
    [_cutImages addObject:image];
    // 千万记得,结束上下文
    UIGraphicsEndImageContext();
}

iOS_截屏并裁剪

时间: 2024-10-28 14:06:50

iOS_截屏并裁剪的相关文章

监听Android系统截屏

公司的项目由于安全需要,对某一特定的页面需要监听是否被用户截屏了. 简单搜了一下,很少有这方面的问题,没办法,只能自己折腾了. 目前想到三种思路: 1.监听广播 当然,前提是系统在截屏的时候发送某一广播,然而并没有. 2.监听按键 Android手机按下“电源键+音量减”会进行截屏,此外大部分手机状态栏下拉的页面中也会有截屏按钮.遗憾的是,监听这两处的操作并不是一件让人开心的事儿~~. 3.监听手机中图片的变化 开始只想到了MediaStore这个类,可以通过它拿到手机中的所有图片,每隔一段时间

源码0301-图片水印-裁剪-截屏-截取-擦除

// ViewController.m // 01-图片水印 #import "ViewController.h" // 在图片的基础绘制一些文字或者Logo,最终生成一张图片 @interface ViewController () @property (weak, nonatomic) IBOutlet UIImageView *imageView; @end @implementation ViewController - (void)viewDidLoad { [super v

Android新姿势:截屏代码整理

今天做项目要用到android截屏功能,一开始我还庆幸看过一些博客的文章,自信能轻松解决...- - 结果坑了一天才搞了个差不多的交差...哎! 关于android截屏的代码,大致有3种方法,有兴趣的看下去吧. 方法一: 网上看了很多文章,大多用的是这样的方法,直接把一个View转换成Bitmap,然后保存到sd卡. /** * 根据view来生成bitmap图片,可用于截图功能 */ public static Bitmap getViewBitmap(View v) { v.clearFoc

IOS截屏,View截图的基本方法

IOS截屏的方法网上有很多,以下是我个人认为比较好的一个,我稍微改了一点 来源:SDScreenshotCapture #define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending) UIImage *getImageWithFullScreenshot(vo

iOS 截屏以及相关扩展(UIImage的绘制和渲染)

1.截取当前屏幕 CGSize windowSize = behandView.bounds.size; UIGraphicsBeginImageContextWithOptions(windowSize, YES, 2.0); CGContextRef context = UIGraphicsGetCurrentContext(); [behandView.window.layer renderInContext:context]; UIImage *snapshot = UIGraphics

Android 7.1.1 系统截屏

frameworks/base/packages/SystemUI/src/com/android/systemui/screenshot/TakeScreenshotService.java TakeScreenshotService.java package com.android.systemui.screenshot; import android.app.Service; import android.content.Intent; import android.os.Handler;

超好用的滚动屏幕截屏工具FastStone Capture

对于超级喜欢整理的技术控,一看到比较好技术文章就想收集下来,单纯的记录网页,又怕作者删除,我只能选择截图,可是有许多文章特别长,直到使用FastStone Capture截图工具,终于可以快速收集这些技术文章了. 1.截图工具是这样的 2.比较好用的滚动截屏使用方法: 图中第六个图标. 1)点击后,可以拖动窗口进行大范围的截图,比如可以将浏览器的网页做为截图对象,截取时,点击选取滚动条箭头就可以完成截图,ESC中断截图滚动! 2)在选定滚动截图图标后还可以按ctrl键进行滚动区域的选择. 3.图

Android自己定义截屏功能,相似QQ截屏

由于公司业务需求 须要对一个屏幕进行截屏.但自带的截屏功能是远远不够项目的功能需求 ,我们是做一个画板软件 .须要的像QQ那样截屏之后 ,能够看到我们自己定义的工具.有画笔,button等等 .android自带的功能非常easy,仅仅须要Intent隐式调用就全然足够了.但他是系统的应用 ,界面固定.无法定制改动.实现方法跟办法有非常多种,以下记录下我实现的方法 .我是这样一个思路 ,重写一个View组件 ,在OnDraw里面仅仅负责不绘图形(包含半透明的四个矩形,亮框矩形,亮框上的四个小圆点

Snipaste强大离线/在线截屏软件的下载、安装和使用

步骤一: https://zh.snipaste.com/  ,去此官网下载. 步骤二:由于此是个绿色软件,直接解压即可. 步骤三:使用,见官网.ttps://zh.snipaste.com  按F1开始截屏 感谢下面哥的精彩微信文章 http://mp.weixin.qq.com/s?__biz=MzIwNzYwODYwMw==&mid=2247483903&idx=1&sn=02121fe920320bbe7b2fae012a18e70a&chksm=970e8f8ba