首页 > 解决方案 > 如何在 Xamarin IOS Live Camera 中添加 OverlayView

问题描述

在此处输入图像描述

标签: xamarin.ioscameraoverlayview

解决方案


你可以使用UIImagePickerController来做到这一点。

首先制作一个覆盖视图,就像您的问题中显示的那样。

  • 我相信您可以使用视图的Alpha属性获得灰色效果。
  • 您可以使用UIBezierPath制作线条

完成覆盖视图后,将其分配给UIImagePickerController的CameraOverlayView属性

这是一个粗略的例子。

    imagePicker = new UIImagePickerController();

    // set our source to the camera
    imagePicker.SourceType = UIImagePickerControllerSourceType.Camera;

    // set
    imagePicker.MediaTypes = new string[] { "public.image" };

    // show the camera controls
    imagePicker.ShowsCameraControls = true;

    // This is where you assign the view that you want to overlay   
    imagePicker.CameraOverlayView = new CameraOverlayView();

更新:

使用CGImageCreateWithImageInRect类获取图像的裁剪版本。传递相机叠加层的矩形和相机拍摄的图片的图像参考,该类将返回相机叠加层覆盖的裁剪图像。

这是来自 Objective C 的示例,我相信您可以在 Xamarin.iOS 中执行类似的操作

CGImageRef imageRef = CGImageCreateWithImageInRect([largeImage CGImage], cropRect);
// or use the UIImage wherever you like
[UIImageView setImage:[UIImage imageWithCGImage:imageRef]]; 
CGImageRelease(imageRef);

推荐阅读