gpt4 book ai didi

iphone - didFinishPickingMediaWithInfo 返回零照片

转载 作者:行者123 更新时间:2023-12-03 18:15:25 26 4
gpt4 key购买 nike

我正在努力使用

捕获 4.0 中返回的图像
- (void)imagePickerController:(UIImagePickerController *)picker 
didFinishPickingMediaWithInfo:(NSDictionary *)info
{
[[picker parentViewController] dismissModalViewControllerAnimated:YES];

// MediaType can be kUTTypeImage or kUTTypeMovie. If it's a movie then you
// can get the URL to the actual file itself. This example only looks for images.
//
NSString* mediaType = [info objectForKey:UIImagePickerControllerMediaType];
// NSString* videoUrl = [info objectForKey:UIImagePickerControllerMediaURL];

// Try getting the edited image first. If it doesn't exist then you get the
// original image.
//
if (CFStringCompare((CFStringRef) mediaType, kUTTypeImage, 0) == kCFCompareEqualTo) {
UIImage* picture = [info objectForKey:UIImagePickerControllerEditedImage];
if (!picture)
picture = [info objectForKey:UIImagePickerControllerOriginalImage];

// **picture is always nil
// info dictionary count = 1


}

}

发生的情况是信息字典总是返回一个条目:

{ UIImagePickerControllerMediaType = "public.image";

这很棒,但从来没有图像。

我使用了这个论坛上的一个很好的例子来做到这一点,我很确定调用是正确的,但从来没有图像。

提前致谢!

最佳答案

我知道这已经是几个月后的事了,但我为此苦苦挣扎了几个小时,并在这个网站和 iphonedevsdk.com 上发现了同样的问题,但从未找到有效的答案。

总而言之,如果图像是从相机胶卷/照片库中选取的,则它可以正常工作,但如果图像是用相机拍摄的新照片,则它永远不会工作。好吧,以下是如何让它同时适用于两者:

在尝试对信息字典执行任何操作之前,您必须先关闭并释放 UIImagePickerController。非常清楚:

这不起作用:

- (void)imagePickerController:(UIImagePickerController *)picker 
didFinishPickingMediaWithInfo:(NSDictionary *)info {

// No good with the edited image (if you allowed editing)
myUIImageView.image = [info objectForKey:UIImagePickerControllerEditedImage];
// AND no good with the original image
myUIImageView.image = [info objectForKey:UIImagePickerControllerOriginalImage];
// AND no doing some other kind of assignment
UIImage *myImage = [info objectForKey:UIImagePickerControllerEditedImage];

[picker dismissModalViewControllerAnimated:YES];
[picker release];
}

在所有这些情况下,图像都为零。

但是,通过释放 UIImagePickerController 首先...

这确实有效:

- (void)imagePickerController:(UIImagePickerController *)picker 
didFinishPickingMediaWithInfo:(NSDictionary *)info {

[picker dismissModalViewControllerAnimated:YES];
[picker release];

// Edited image works great (if you allowed editing)
myUIImageView.image = [info objectForKey:UIImagePickerControllerEditedImage];
// AND the original image works great
myUIImageView.image = [info objectForKey:UIImagePickerControllerOriginalImage];
// AND do whatever you want with it, (NSDictionary *)info is fine now
UIImage *myImage = [info objectForKey:UIImagePickerControllerEditedImage];
}

非常简单,但这就是全部。

关于iphone - didFinishPickingMediaWithInfo 返回零照片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3088874/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com