This repository has been archived by the owner on Oct 20, 2022. It is now read-only.
/
ImageViewController.cs
69 lines (55 loc) · 2.53 KB
/
ImageViewController.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
using System;
using CoreGraphics;
using AssetsLibrary;
using UIKit;
using Foundation;
namespace ImageView {
public class ImageViewController : UIViewController {
UIButton cameraButton;
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
Title = "Save to Album";
View.BackgroundColor = UIColor.White;
cameraButton = UIButton.FromType (UIButtonType.RoundedRect);
cameraButton.Frame = new CGRect(10, 20, 100,40);
cameraButton.SetTitle ("Camera", UIControlState.Normal);
cameraButton.TouchUpInside += (sender, e) => {
TweetStation.Camera.TakePicture (this, (obj) =>{
// https://developer.apple.com/library/ios/#documentation/uikit/reference/UIImagePickerControllerDelegate_Protocol/UIImagePickerControllerDelegate/UIImagePickerControllerDelegate.html#//apple_ref/occ/intfm/UIImagePickerControllerDelegate/imagePickerController:didFinishPickingMediaWithInfo:
var photo = obj.ValueForKey(new NSString("UIImagePickerControllerOriginalImage")) as UIImage;
var meta = obj.ValueForKey(new NSString("UIImagePickerControllerMediaMetadata")) as NSDictionary;
// This bit of code saves to the Photo Album with metadata
// ALAssetsLibrary library = new ALAssetsLibrary();
// library.WriteImageToSavedPhotosAlbum (photo.CGImage, meta, (assetUrl, error) =>{
// Console.WriteLine ("assetUrl:"+assetUrl);
// });
// This bit of code does basic 'save to photo album', doesn't save metadata
// var someImage = UIImage.FromFile("someImage.jpg");
// someImage.SaveToPhotosAlbum ((image, error)=> {
// var o = image as UIImage;
// Console.WriteLine ("error:" + error);
// });
// This bit of code saves to the application's Documents directory, doesn't save metadata
var documentsDirectory = Environment.GetFolderPath
(Environment.SpecialFolder.Personal);
string jpgFilename = System.IO.Path.Combine (documentsDirectory, "Photo.jpg");
NSData imgData = photo.AsJPEG();
NSError err = null;
if (imgData.Save(jpgFilename, false, out err))
{
Console.WriteLine("saved as " + jpgFilename);
} else {
Console.WriteLine("NOT saved as" + jpgFilename + " because" + err.LocalizedDescription);
}
});
};
View.Add (cameraButton);
if (!UIImagePickerController.IsSourceTypeAvailable (UIImagePickerControllerSourceType.Camera)) {
cameraButton.SetTitle ("No camera", UIControlState.Disabled);
cameraButton.SetTitleColor (UIColor.Gray, UIControlState.Disabled);
cameraButton.Enabled = false;
}
}
}
}