Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa 沿Y轴翻转CGImage_Cocoa_Cgimageref_Nsbitmapimagerep - Fatal编程技术网

Cocoa 沿Y轴翻转CGImage

Cocoa 沿Y轴翻转CGImage,cocoa,cgimageref,nsbitmapimagerep,Cocoa,Cgimageref,Nsbitmapimagerep,我试图抓取屏幕的一部分并读取像素值。我有一个CGImageRep,我将屏幕截图存储在其中,然后将其写入NSBitmapImageRep,然后读取像素值。图像是翻转过来的,我需要在Y轴上翻转过来。我尝试了一个CGF翻译,但没有得到任何回报 所有其他的建议似乎都是关于翻转图层和视图,但由于我没有在任何地方绘制此图像,所以我不能只是翻转视图 下面是一个代码示例(很抱歉,它在MacRuby/RubyMoon中,但是语法应该是可读的) 通常情况下就是这样做的。当你说“我什么都没拿回来”你是什么意思?图像是

我试图抓取屏幕的一部分并读取像素值。我有一个CGImageRep,我将屏幕截图存储在其中,然后将其写入NSBitmapImageRep,然后读取像素值。图像是翻转过来的,我需要在Y轴上翻转过来。我尝试了一个CGF翻译,但没有得到任何回报

所有其他的建议似乎都是关于翻转图层和视图,但由于我没有在任何地方绘制此图像,所以我不能只是翻转视图

下面是一个代码示例(很抱歉,它在MacRuby/RubyMoon中,但是语法应该是可读的)


通常情况下就是这样做的。当你说“我什么都没拿回来”你是什么意思?图像是黑色的?是的,图像是黑色的。@tsugua您是如何找到displayID的?@AlexLopez在这个脚本中,我刚刚为主显示传递了0。您还可以使用CGMainDisplayID检测主显示器。整个Quartz Display Services文档应显示可用于检测屏幕编号的所有选项。
 flipVertical = CGAffineTransformMake(1,0,0,-1,0,$win_size[1])
 ctx = CGDisplayGetDrawingContext(KCGDirectMainDisplay)
 CGContextConcatCTM(ctx, flipVertical)
 image = CGDisplayCreateImageForRect(displayID, CGRectMake(0, 0, $win_size[0], $win_size[1]))
 bitmap = NSBitmapImageRep.alloc.initWithCGImage(image)