- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在装有 iOS 6.1 的 iPad 3 Retina 上,我初始化我的静态相机:
stillCamera = [[GPUImageStillCamera alloc] initWithSessionPreset:AVCaptureSessionPresetPhoto cameraPosition:AVCaptureDevicePositionBack];
stillCamera.outputImageOrientation = UIInterfaceOrientationLandscapeLeft;
我用这些滤镜设置了相机:
UIImage *inputImage = [UIImage imageNamed:@"blank-1x1.png"];
sourcePicture = [[GPUImagePicture alloc] initWithImage:inputImage smoothlyScaleOutput:YES];
[sourcePicture processImage];
chromaKeyBlendFilter = [[GPUImageChromaKeyBlendFilter alloc] init];
[chromaKeyBlendFilter setColorToReplaceRed:0.0 green:1.0 blue:0.0];
[chromaKeyBlendFilter setThresholdSensitivity:0.37f];
filter = chromaKeyBlendFilter;
[stillCamera addTarget:filter];
[sourcePicture addTarget:filter];
[filter addTarget:videoPreviewView]; // 1024x768 view
[stillCamera startCameraCapture];
当我捕获我使用的图像时:
[stillCamera capturePhotoAsPNGProcessedUpToFilter:filter withCompletionHandler:^(NSData *processedPNG, NSError *error){
self.currentImage = [UIImage imageWithData:processedPNG];
});
但我得到的图像是屏幕大小(视网膜风格)2048x1536,而不是我期望的后置摄像头的 2420x1936。我还注意到 #imageFromCurrentlyProcessedOutputWithOrientation# 也只返回屏幕尺寸,并且查看 GPUImageStillCamera.m 中的捕获代码,看起来好像这是输出的来源。
我不知道为什么,因为我还有一个选项/按钮来使用非 GPUImage 设置,我得到了 2420x1936 的 PNG 图像。
我在这里做错了什么?感谢您提供任何提示(因为我真的想要 2420x1936)。
最佳答案
首先,我指的是 2592x1936 用于 iPad 后置摄像头全分辨率(我将图像裁剪为 8x10 大小)。事实证明,我太“聪明”了。
当我点击一个按钮来捕获图像时,我在后台线程中使用了以下命令来获取异步捕获时保存到属性中的图像(在本例中,PNG 文件最大为 8mb)
[stillCamera capturePhotoAsPNGProcessedUpToFilter:filter withCompletionHandler:^(NSData *processedPNG, NSError *error)
self.currentImage = [UIImage imageWithData:processedPNG];
但是,在分派(dispatch)该队列后,我立即转到预览 View ,在其中使用
抓取图像[filter imageFromCurrentlyProcessedOutputWithOrientation:UIImageOrientationUp]
那是 2048x1516,足以在 iPad Retina 上显示预览。然后当预览被关闭时,self.currentImage 被裁剪并保存到一个文件(和 Core Data 元数据)。
我太“聪明”了,当我注意到预览显示时,我仍然从相机中获取记录的 KVO 控制台消息。因此,在 viewWillDisappear 中,我放入了“暂停相机”并重新出现“恢复相机”。显然,当发出暂停相机命令时,它会立即停止处理并将其转储到我的 currentImage 属性中,并且如果预览可以再等几秒钟,那始终是 2048x1516 图像而不是全分辨率图像。
恕我直言,当相机暂停时,任何后台捕获线程都应该继续执行直到完成,然后暂停相机。但我可以解决这个问题,我很高兴我发现了这个问题。
关于ios - GPUImageStillCamera 输出分辨率有限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16388484/
我有一个关于复杂性的简单问题。我在 Java 中有这段代码: pairs是 HashMap包含 Integer作为键,它的频率为 Collection作为一个值。所以: pairs = new Has
对于我的应用程序,我需要在 Coq 中使用和推理有限映射。谷歌搜索我发现 FMapAVL 似乎非常适合我的需求。问题是文档很少,我还没有弄清楚我应该如何使用它。 作为一个简单的例子,考虑以下使用对列表
我有一个主表tblAssetMaster A和一个移动表tblMovement M。 我想提取所有 Assets 及其当前位置,因此需要获取每个 Assets 的最新移动条目。 字段 A: Asset
我想让我的网站内容居中,但仅限于网页的特定宽度。所以当它超过 500px 时,我希望内容被修复,无法进一步拉伸(stretch)。无论如何都要这样做,还是我最好把所有东西都修好?希望有意义的是添加一些
我正在尝试批量删除 Backbone 模型的集合,如下所示...... collection.each(function(model, i){ model.destroy(); }); 我发现当每
我想要一个软件环境,在其中我可以在具有特定资源的硬件上测试我的软件的速度。例如,当我的主机硬件是具有 12GB RAM 的 3GHz 四核 amd64 时,该程序在具有 24 Mb RAM 的 800
在 Eclipse 中,我得到了 BigInteger.valueOf(2).pow(31093) 的值,但没有得到 BigInteger.valueOf(2).pow(31094) 的值(它是空的)
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求提供代码的问题必须表现出对所解决问题的最低限度理解。包括尝试过的解决方案、为什么它们不起作用,以及预
我想将 2 个表从本地 sql server 2000 上传到托管的 mysql。第一个表有 17 列和 680 行,其他 10 列和 8071 行。 我首先使用 xampp mysql 尝试离线,它
我在 S3 中自动生成并保存了静态 html 文件。有时文件大小达到 2mb。是否可以使用javascript来获取html文件的一部分,显示它,当用户到达页面底部时,获取下一部分等等? 最佳答案 X
我是一名优秀的程序员,十分优秀!