热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

iOS截屏功能代码

大家都知道通过同时按iphone和ipad关机键和home键可以进行截图,也可以通过代码编程进行对屏幕的截图。使用opengles截图并保存代码:相

   大家都知道通过同时按iphone和ipad关机键和home键可以进行截图,也可以通过代码编程进行对屏幕的截图。

使用opengles截图并保存代码:

相关连接

-(UIImage *) glToUIImage {NSInteger myDataLength &#61; 1024 * 768 * 4;// allocate array and read pixels into it.GLubyte *buffer &#61; (GLubyte *) malloc(myDataLength);glReadPixels(0, 0, 1024, 768, GL_RGBA, GL_UNSIGNED_BYTE, buffer);// gl renders "upside down" so swap top to bottom into new array.// there&#39;s gotta be a better way, but this works.GLubyte *buffer2 &#61; (GLubyte *) malloc(myDataLength);for(int y &#61; 0; y <768; y&#43;&#43;){for(int x &#61; 0; x <1024 * 4; x&#43;&#43;){buffer2[(767 - y) * 1024 * 4 &#43; x] &#61; buffer[y * 4 * 1024 &#43; x];}}// make data provider with data.CGDataProviderRef provider &#61; CGDataProviderCreateWithData(NULL, buffer2, myDataLength, NULL);// prep the ingredientsint bitsPerComponent &#61; 8;int bitsPerPixel &#61; 32;int bytesPerRow &#61; 4 * 1024;CGColorSpaceRef colorSpaceRef &#61; CGColorSpaceCreateDeviceRGB();CGBitmapInfo bitmapInfo &#61; kCGBitmapByteOrderDefault;CGColorRenderingIntent renderingIntent &#61; kCGRenderingIntentDefault;// make the cgimageCGImageRef imageRef &#61; CGImageCreate(1024, 768, bitsPerComponent, bitsPerPixel, bytesPerRow, colorSpaceRef, bitmapInfo, provider, NULL, NO, renderingIntent);// then make the uiimage from thatUIImage *myImage &#61; [UIImage imageWithCGImage:imageRef];return myImage;
}-(void)captureToPhotoAlbum {UIImage *image &#61; [self glToUIImage];UIImageWriteToSavedPhotosAlbum(image, self, nil, nil);
}


使用苹果官网截图并保存

相关连接

-(void)ScreenShots
{[self unschedule:&#64;selector(ScreenShots)];CGSize imageSize &#61; [[UIScreen mainScreen] bounds].size;if (NULL !&#61; UIGraphicsBeginImageContextWithOptions) {UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0);}else{UIGraphicsBeginImageContext(imageSize);}CGContextRef context &#61; UIGraphicsGetCurrentContext();for (UIWindow * window in [[UIApplication sharedApplication] windows]) {if (![window respondsToSelector:&#64;selector(screen)] || [window screen] &#61;&#61; [UIScreen mainScreen]) {CGContextSaveGState(context);CGContextTranslateCTM(context, [window center].x, [window center].y);CGContextConcatCTM(context, [window transform]);CGContextTranslateCTM(context, -[window bounds].size.width*[[window layer] anchorPoint].x, -[window bounds].size.height*[[window layer] anchorPoint].y);[[window layer] renderInContext:context];CGContextRestoreGState(context);}}UIImage *image &#61; UIGraphicsGetImageFromCurrentImageContext();UIGraphicsEndImageContext();NSThread *thread&#61;[[NSThread alloc] initWithTarget:self selector:&#64;selector(saveThread:) object:image];[thread start];[thread release];NSLog(&#64;"Suceeded!");
}-(void)saveThread:(UIImage*)image
{NSAutoreleasePool *pool&#61;[[NSAutoreleasePool alloc]init];UIImageWriteToSavedPhotosAlbum(image, self, nil, nil);[pool release];
}






推荐阅读
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • 展开全部下面的代码是创建一个立方体Thisexamplescreatesanddisplaysasimplebox.#Thefirstlineloadstheinit_disp ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • 开发笔记:实验7的文件读写操作
    本文介绍了使用C++的ofstream和ifstream类进行文件读写操作的方法,包括创建文件、写入文件和读取文件的过程。同时还介绍了如何判断文件是否成功打开和关闭文件的方法。通过本文的学习,读者可以了解如何在C++中进行文件读写操作。 ... [详细]
  • 先看官方文档TheJavaTutorialshavebeenwrittenforJDK8.Examplesandpracticesdescribedinthispagedontta ... [详细]
  • 配置IPv4静态路由实现企业网内不同网段用户互访
    本文介绍了通过配置IPv4静态路由实现企业网内不同网段用户互访的方法。首先需要配置接口的链路层协议参数和IP地址,使相邻节点网络层可达。然后按照静态路由组网图的操作步骤,配置静态路由。这样任意两台主机之间都能够互通。 ... [详细]
  • 本文介绍了在处理不规则数据时如何使用Python自动提取文本中的时间日期,包括使用dateutil.parser模块统一日期字符串格式和使用datefinder模块提取日期。同时,还介绍了一段使用正则表达式的代码,可以支持中文日期和一些特殊的时间识别,例如'2012年12月12日'、'3小时前'、'在2012/12/13哈哈'等。 ... [详细]
  • This article discusses the efficiency of using char str[] and char *str and whether there is any reason to prefer one over the other. It explains the difference between the two and provides an example to illustrate their usage. ... [详细]
  • 本文介绍了OpenStack的逻辑概念以及其构成简介,包括了软件开源项目、基础设施资源管理平台、三大核心组件等内容。同时还介绍了Horizon(UI模块)等相关信息。 ... [详细]
  • 本文介绍了Swing组件的用法,重点讲解了图标接口的定义和创建方法。图标接口用来将图标与各种组件相关联,可以是简单的绘画或使用磁盘上的GIF格式图像。文章详细介绍了图标接口的属性和绘制方法,并给出了一个菱形图标的实现示例。该示例可以配置图标的尺寸、颜色和填充状态。 ... [详细]
  • Android工程师面试准备及设计模式使用场景
    本文介绍了Android工程师面试准备的经验,包括面试流程和重点准备内容。同时,还介绍了建造者模式的使用场景,以及在Android开发中的具体应用。 ... [详细]
  • 本文由编程笔记#小编整理,主要介绍了关于数论相关的知识,包括数论的算法和百度百科的链接。文章还介绍了欧几里得算法、辗转相除法、gcd、lcm和扩展欧几里得算法的使用方法。此外,文章还提到了数论在求解不定方程、模线性方程和乘法逆元方面的应用。摘要长度:184字。 ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
author-avatar
zhibiao
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有