Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.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
UIImage来自_initWithIOSurface的图像的类型_Ios_Uiimage_Iphone Privateapi - Fatal编程技术网

UIImage来自_initWithIOSurface的图像的类型

UIImage来自_initWithIOSurface的图像的类型,ios,uiimage,iphone-privateapi,Ios,Uiimage,Iphone Privateapi,我正在尝试访问屏幕的像素数据。非常奇怪的是,这种方法适用于iPad3,但在iPodtouch4上失败了。 首先,我使用FastBlurredNotificationCenter中的一些行从屏幕上抓取UIImage: IOSurfaceRef surface = [UIWindow createScreenIOSurface]; UIImage *imageui = [[UIImage alloc] _initWithIOSurface:surface scale:[UIScreen mainSc

我正在尝试访问屏幕的像素数据。非常奇怪的是,这种方法适用于iPad3,但在iPodtouch4上失败了。 首先,我使用FastBlurredNotificationCenter中的一些行从屏幕上抓取UIImage:

IOSurfaceRef surface = [UIWindow createScreenIOSurface];
UIImage *imageui = [[UIImage alloc] _initWithIOSurface:surface scale:[UIScreen mainScreen].scale orientation:UIImageOrientationUp];
这肯定对两种设备都有效

然后,我尝试从UIImage获取CGImage:

CGImageRef imagecg = imageui.CGImage
此代码不适用于IPodGimage size={0,0}。因此,我假设UIImage可以从CIImage创建,并添加一行进行测试:

NSLog(@"debug-ciimage:%@-cgimage:%@",imageui.CIImage,imageui.CGImage);
两个结果都是空的。我不知道如何从其CGImage或PNG表示访问UIImage Exect的像素数据。请帮忙

尝试的方法列表: 1.[UIImage CGImage]; 2.[UIImage CIImage]; 3.[UIImage drawInRect:imageRect];使用UIGraphicsBeginImageContextWithOptionContextSize给出的上下文,否,0.0f

加: 以某种方式解决了这个问题。但从iSurface创建的UIImage的图像类型仍然未知。。。 解决方法是避免我无法处理的UIImage。。。 从另一个角度来看,有一种替代方案 -idinitWithIOSurface:IOSurfaceRefioSurface

就是

CGImageRef UICreateCGImageFromIOSurface(IOSurfaceRef ioSurface);
它在两种设备上都能工作

结论是,如果您想在UIView上使用initWithIOSurface,则initWithIOSurface非常适合您,反之亦然 使用UICreateCImageFromIOSurface,以便您可以轻松地将其转换为您喜欢的格式


感谢JustSid帮助我回答有关stackoverflow的第一个问题。

当您尝试将图像绘制到图形上下文中时会发生什么?好主意。也许这会奏效。我试试看。我搜索了一下。但似乎我需要cgimage来绘制cgcontext?CGContextDrawImagecontext、drawRect、newImage.CGImage;UIImage定义了自己的绘图方法,您可以使用这些方法,尽管我不确定它们是否只是CGContextDrawImage的包装器,或者它们是否实现了更多的逻辑我如何找到这些方法,或者您是否可以提供一个?还没有从谷歌或stackoverflow找到任何东西。它就在地图上