捕获图像从相机设置为ImageView

时间:2014-09-18 14:34:03

标签: c# ios uiimageview xamarin image-capture

如何直接从iPhone / Ipad捕获的相机图像上传或添加图像到UIImageView。

我已经从照片库向UIImageView上传了一张图片。

现在,我希望在通过相机将图像拍摄到ImageView后直接上传图像。

请建议我如何实施。

使用IOS 8.0

2 个答案:

答案 0 :(得分:1)

这可以通过Xamarin.Mobile组件轻松完成,该组件是免费的,适用于所有平台。

http://components.xamarin.com/view/xamarin.mobile

从他们给出的例子中可以看出:

using Xamarin.Media;
// ...

var picker = new MediaPicker ();
if (!picker.IsCameraAvailable)
    Console.WriteLine ("No camera!");
else {
    try {
        MediaFile file = await picker.TakePhotoAsync (new StoreCameraMediaOptions {
            Name = "test.jpg",
            Directory = "MediaPickerSample"
        });

        Console.WriteLine (file.Path);
    } catch (OperationCanceledException) {
        Console.WriteLine ("Canceled");
    }
}

拍摄照片后,会将其保存到您指定的目录中,并使用您指定的名称。要使用上面的示例轻松检索此图片并使用ImageView进行显示,您可以执行以下操作:

//file is declared above as type MediaFile
UIImage image = new UIImage(file.Path);

//Fill in with whatever your ImageView is
yourImageView.Image = image;

编辑:

请注意,上述内容需要异步。因此,如果您想通过按钮调用启动摄像头,您只需稍微修改.TouchUpInside事件:

exampleButton.TouchUpInside += async (object sender, EventArgs e) => {
  //Code from above goes in here, make sure you have async after the +=
};

否则你可以在函数中包装上面的代码并将async添加到:

public async void CaptureImage()
{
    //Code from above goes here
}

答案 1 :(得分:0)

您需要使用AVFoundation来执行此操作。查看Xcode中的AVCam示例项目:

https://developer.apple.com/library/ios/samplecode/AVCam/Introduction/Intro.html