我能够从地址簿中获取人物的原始图像,但我想问一下,如果有任何方法可以获得裁剪图像(以防用户拍摄照片并放大了部分内容) 。我找到了一种方法,如何在objective-c中执行此操作:
NSData *imageData = [(NSData *)ABPersonCopyImageDataWithFormat(
recordRef, kABPersonImageFormatThumbnail) autorelease];
我找不到如何在MonoTouch中获取此缩略图的方法。我发现这个枚举肯定与此有关,但没有别的:(
http://docs.go-mono.com/MonoTouch.AddressBook.ABPersonImageFormat/Members
拜托,有什么想法吗? 提前致谢
答案 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