如何选择屏幕的某个区域并将其另存为 CGimage 或 CIImage?

发布于 2024-12-24 01:51:30 字数 131 浏览 2 评论 0原文

我正在创建一个应用程序来捕获屏幕的一小部分区域并将其与保存到磁盘的图像库进行比较。几年前,我在 .net 中编写了一个类似的应用程序,并使用了 bitblt 和 WINAPI。性能确实很重要,如果它能对性能产生影响,我不介意深入研究 openGL。

I'm creating an application to capture a small area of the screen and compare it to a library of images saved to disk. I wrote a similar application a few years ago in .net and used bitblt and the WINAPI. Performance is really important and I don't mind delving into openGL if it would make a difference with performance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

じ违心 2024-12-31 01:51:30

你可以使用这样的代码:

-(NSImage*)captureImageFromRect:(NSRect)captureRect
{
    NSImage *resultingImage = nil;
    CGImageRef image;
    CGWindowID  windowID = (CGWindowID)[[self window] windowNum];
    image = CGWindowListCreateImage(NSRectToCGRect(captureRect), kCGWindowListOptionIncludingWindow|kCGWindowListOptionOnScreenBelowWindow, windowID, kCGWindowImageDefault);
    resultingImage = [[NSImage alloc] initWithCGImage:image size:NSZeroSize];
    CGImageRelease(image);
    return [resultingImage autorelease];
}

You could use some code like this:

-(NSImage*)captureImageFromRect:(NSRect)captureRect
{
    NSImage *resultingImage = nil;
    CGImageRef image;
    CGWindowID  windowID = (CGWindowID)[[self window] windowNum];
    image = CGWindowListCreateImage(NSRectToCGRect(captureRect), kCGWindowListOptionIncludingWindow|kCGWindowListOptionOnScreenBelowWindow, windowID, kCGWindowImageDefault);
    resultingImage = [[NSImage alloc] initWithCGImage:image size:NSZeroSize];
    CGImageRelease(image);
    return [resultingImage autorelease];
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文