在MonoTouch中获取人物的裁剪照片(在iPhone上)

时间:2011-06-24 08:46:55

标签: iphone objective-c xamarin.ios addressbook abaddressbook

我能够从地址簿中获取人物的原始图像,但我想问一下,如果有任何方法可以获得裁剪图像(以防用户拍摄照片并放大了部分内容) 。我找到了一种方法,如何在objective-c中执行此操作:

NSData *imageData = [(NSData *)ABPersonCopyImageDataWithFormat(
          recordRef, kABPersonImageFormatThumbnail) autorelease];

我找不到如何在MonoTouch中获取此缩略图的方法。我发现这个枚举肯定与此有关,但没有别的:(

http://docs.go-mono.com/MonoTouch.AddressBook.ABPersonImageFormat/Members

拜托,有什么想法吗? 提前致谢

3 个答案:

答案 0 :(得分:0)

尝试MonoTouch.AddressBook.ABPerson.Image属性。和MonoTouch.AddressBook.ABPerson.HasImage属性以确保MonoTouch.AddressBook.ABPerson有图片。

答案 1 :(得分:0)

右键单击ABPerson实例的Image属性,然后选择“Go to declaration”,您将找到Monotouch为此属性实现的代码:

public NSData Image {
get {
    return (NSData)Runtime.GetNSObject(ABPerson.ABPersonCopyImageData(this.Handle));
}
set {
    if (!ABPerson.ABPersonSetImageData(this.Handle, (value ? value.Handle : IntPtr.Zero), &IntPtr ))
    {
            throw CFException.FromCFError();
    }
}

}

你看到ABPerson.ABPersonCopyImageData方法用于返回Image,因此有一种获取图像的方法,但我认为它被标记为Internal。

所以我认为我们需要自己绑定Objective C函数。有没有人知道如何做到这一点或有任何经验?

答案 2 :(得分:0)

刚刚找到并发布了ABPersonCopyImageDataWithFormat函数的解决方案。

查看我自己的帖子:Monotouch binding for ABPersonCopyImageDataWithFormat