我尝试从视网膜显示器获取屏幕截图,并在窗口上绘制此图像。
我可以获得捕获
CGDirectDisplayID displayId = CGMainDisplayID()
CGImage imageRef = CGDisplayCreateImage(displayId)
图片尺寸为2560x1600
现在,我需要在窗口上绘制此图像。但如果,我将窗口调整为全屏,窗口返回大小1280x800。如果我不在窗口上绘制图像,我需要将比例图像设置为1280x800。图像质量下降,这不好。
请帮助我,我如何从视网膜显示器上获取屏幕并在窗口上绘制,而不会丢失质量?
答案 0 :(得分:0)
您可以通过将其框架传递给此方法来查找实际窗口大小(以像素为单位):
-[NSWindow convertRectToBacking:]
答案 1 :(得分:0)
只需将图像绘制到视图的边界即可。理论上这是一个缩放操作,但实际上并不是因为视图的边界是点,而不是像素。视图的后备缓冲区与原始屏幕捕获的DPI相同,因此它将是一个直接的blit。没有细节会丢失。