在我的應用程序中,我顯示相機,並使用UIGetScreenImage拍攝某些圖片的截圖,(我試過UIGraphicsGetImageFromCurrentImageContext,它對我的應用程序的幾乎任何部分的截圖效果都很好,但對於相機查看它只會返回一個空白圖像)......反正,我擔心蘋果會拒絕,因爲UIGetScreenImage的我的應用程序......我如何可以採取一個50像素的「截圖」 50像素箱從相機的左上角不使用這種方法?我搜索和所有我能找到的是「AVCaptureSession」我找不到太多關於做什麼,或者如果它甚至就是我正在尋找...任何見解? :) 多謝你們!!!iOS Capture「截圖」相機控制器
2
A
回答
3
它不會比蘋果的how to capture the camera's view文檔更清晰。是的,這涉及類AVCaptureSession
。
如果你確實需要的界面截圖,你應該在docs for that。從鏈接剪切和粘貼代碼(如果不工作,你應該提交給蘋果一個錯誤報告):
更新:它看來,這種做法已不再支持iOS的更新版本。第二個環節現在也被打破了。
- (UIImage*)screenshot
{
// Create a graphics context with the target size
// On iOS 4 and later, use UIGraphicsBeginImageContextWithOptions to take the scale into consideration
// On iOS prior to 4, fall back to use UIGraphicsBeginImageContext
CGSize imageSize = [[UIScreen mainScreen] bounds].size;
if (NULL != UIGraphicsBeginImageContextWithOptions)
UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0);
else
UIGraphicsBeginImageContext(imageSize);
CGContextRef context = UIGraphicsGetCurrentContext();
// Iterate over every window from back to front
for (UIWindow *window in [[UIApplication sharedApplication] windows])
{
if (![window respondsToSelector:@selector(screen)] || [window screen] == [UIScreen mainScreen])
{
// -renderInContext: renders in the coordinate space of the layer,
// so we must first apply the layer's geometry to the graphics context
CGContextSaveGState(context);
// Center the context around the window's anchor point
CGContextTranslateCTM(context, [window center].x, [window center].y);
// Apply the window's transform about the anchor point
CGContextConcatCTM(context, [window transform]);
// Offset by the portion of the bounds left of and above the anchor point
CGContextTranslateCTM(context,
-[window bounds].size.width * [[window layer] anchorPoint].x,
-[window bounds].size.height * [[window layer] anchorPoint].y);
// Render the layer hierarchy to the current context
[[window layer] renderInContext:context];
// Restore the context
CGContextRestoreGState(context);
}
}
// Retrieve the screenshot image
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
-1
由於iOS7你可以使用:
drawViewHierarchyInRect
UIImage *image;
UIGraphicsBeginImageContext(self.view.frame.size);
[self.view drawViewHierarchyInRect:self.view.frame afterScreenUpdates:YES];
image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
+4
它借鑑一切(甚至是OpenGL的數據)的UIImage除了相機的預覽。 iOS 8.1 –
相關問題
- 1. 拍攝屏幕截圖時,相機控制器不工作
- 2. iOS相機,火炬強度控制
- 3. 如何從相機視圖截圖?
- 4. 在iOS 7多任務切換器中控制屏幕截圖
- 5. Selenium Capture截圖並保存到sql
- 6. iOS的「視圖控制器」
- 7. 如何在手機中打開本機ios視圖控制器
- 8. 相機控制器的自定義形狀IOS
- 9. 你如何截圖ARKit相機視圖?
- 10. 攔截控制器 - Symfony2的
- 11. 攔截觸摸相機按鈕來控制拍攝
- 12. iOS開發Starling框架:截取屏幕截圖並保存到相機膠捲
- 13. iOS - 容器視圖控制器Swift
- 14. iOS,iPad-具有相同主控和詳細視圖控制器的多個分割視圖控制器
- 15. 定製ios相機快門
- 16. iOS:推動相同的視圖控制器
- 17. ios swift - 關閉導航控制器的根視圖控制器
- 18. 查看控制器的視圖控制器和方向iOS
- 19. iOS視圖控制器遏制|子視圖控制器通過觸動父視圖控制器
- 20. iPhone:容器視圖控制器和相機預覽:預覽不顯示在子視圖控制器中
- 21. 相機控制器視圖的覆蓋層中的UIView旋轉
- 22. 如何關閉相機並導航到根視圖控制器?
- 23. 釋放與導航控制器相關的視圖控制器
- 24. 控制器的iOS
- 25. Android相機預覽屏幕截圖
- 26. matlab控制數碼相機
- 27. iOS XCTest截圖
- 28. iOS截取tableview的截圖
- 29. iOS自定義視圖控制器
- 30. ios抓取UIcollectionview控制器的圖像
呵呵! :) 謝謝!!! –
直接從蘋果的文檔。 –
@DummyCode:我使用同樣的方法,但它不能捕捉攝像頭預覽。 – TamilKing