我一直試圖從MacOSX 10.8.4中的C++程序獲取屏幕截圖,這是不可能的。我甚至無法獲得單個像素。它甚至有可能嗎?從Max OSX的屏幕(截圖)中獲取像素
有人可以幫我嗎?或者至少給我一些線索或鏈接。
我一直試圖從MacOSX 10.8.4中的C++程序獲取屏幕截圖,這是不可能的。我甚至無法獲得單個像素。它甚至有可能嗎?從Max OSX的屏幕(截圖)中獲取像素
有人可以幫我嗎?或者至少給我一些線索或鏈接。
void captureScreen(){
CGImageRef image_ref = CGDisplayCreateImage(CGMainDisplayID());
CGDataProviderRef provider = CGImageGetDataProvider(image_ref);
CFDataRef dataref = CGDataProviderCopyData(provider);
size_t width, height; width = CGImageGetWidth(image_ref);
height = CGImageGetHeight(image_ref);
size_t bpp = CGImageGetBitsPerPixel(image_ref)/8;
uint8 *pixels = malloc(width * height * bpp);
memcpy(pixels, CFDataGetBytePtr(dataref), width * height * bpp);
CFRelease(dataref);
CGImageRelease(image_ref);
FILE *stream = fopen("/Users/robert/Desktop/screencap.raw", "w+");
fwrite(pixels, bpp, width * height, stream);
fclose(stream);
free(pixels);
}
謝謝!這就是我想要的。但是,當我用Photoshop打開圖像2 RGB通道是排列的。任何線索? – user1532887
這當然是可能的 - 例如,參見[ 「搶之子」 的示例代碼(https://developer.apple.com/library/mac/#samplecode/SonOfGrab/簡介/ Intro.html)。如果您告訴我們您嘗試了什麼,我們可以給您更具體的幫助。 –