用Cocoa截取屏幕内容并保存为图片
来源:互联网 发布:圣绣明玉染色数据 编辑:程序博客网 时间:2024/05/17 04:53
25MAR
让我们来写一个抓屏程序吧。当然,你知道只要按command+shift+3就可以抓取当前屏幕对吧?本文介绍如何用cocoa程序来实现这一功能。
- (NSImage *) captureScreenImageWithFrame: (NSRect) frame
{
// 获取屏幕的图形端口
CGrafPtr screenPort = CreateNewPort ();
Rect screenRect;
GetPortBounds (screenPort, &screenRect);
// 创建一个临时窗口做为容器
NSWindow *grabWindow = [[NSWindow alloc] initWithContentRect: frame
styleMask:NSBorderlessWindowMask
backing:NSBackingStoreRetained
defer: NO
screen: nil];
CGrafPtr windowPort = GetWindowPort ([grabWindow windowRef]);
Rect windowRect;
GetPortBounds (windowPort, &windowRect);
SetPort (windowPort);
// 将屏幕内容复制到临时窗口
CopyBits (GetPortBitMapForCopyBits(screenPort),
GetPortBitMapForCopyBits(windowPort),
&screenRect,
&windowRect,
srcCopy,
NULL);
// 将窗口内容复制到NSImage中
NSView *grabContentView = [grabWindow contentView];
[grabContentView lockFocus];
NSBitmapImageRep *screenRep;
screenRep = [[NSBitmapImageRep alloc] initWithFocusedViewRect: frame];
[grabContentView unlockFocus];
NSImage *screenImage = [[NSImage alloc] initWithSize: frame.size];
[screenImage addRepresentation: screenRep];
// Clean up
[grabWindow close];
DisposePort(screenPort);
return (screenImage);
} // captureScreenImageWithFrame
- 用Cocoa截取屏幕内容并保存为图片
- 用Cocoa截取屏幕内容并保存为图片(z)
- 将屏幕截取并保存为文件
- c++ 截取屏幕图片并保存
- 截取控件和屏幕图片并保存
- java实现截取屏幕保存为图片
- IOS中截取当前屏幕,并保存图片
- c++截取屏幕图片并保存(函数代码实现)
- IOS中截取当前屏幕,并保存图片
- IOS中截取当前屏幕,并保存图片
- Android:实现截取当前屏幕图片并保存至SDCard
- c++截取屏幕图片并保存(函数代码实现)
- unity截取相机所看到的内容并保存图片
- 安卓开发截取当前屏幕图片及截取整个ListView图片并保存到本地
- mfc 截取桌面 并保存为 bmp 图片
- 截取JPanel的部分内容并保存为图片
- selenium截取当前窗口,并保存为图片
- opencv截取图片并保存
- NOSQL-not only sql
- 一致性Hash算法(转)
- Microsoft .NET PetShop 4.0 架构与技术分析(三)
- FLEX的初始化顺序
- linux下的so、o、lo、a、la文件有什么区别
- 用Cocoa截取屏幕内容并保存为图片
- Microsoft .NET PetShop 4.0 架构与技术分析(二)
- oracle 报系统资源正忙
- el表达式加上引号后...
- Microsoft .NET PetShop 4.0 架构与技术分析(一)
- XSL转换问题,如何获取当前节点的父节点是否是最后一个父节点
- ZK ACL访问的一个小demo
- 数据库三大范式
- hibernate 小工具 Criteria 辅助拼写HQL