首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用alpha从UIImagePicker加载图像

问如何使用alpha从UIImagePicker加载图像
EN

Stack Overflow用户
提问于 2011-11-06 09:06:43
回答 3查看 1.2K关注 0票数 2

我正在使用UIImagePicker加载我已经上传到图片库(在我的iPad上)的图像,但是它加载时没有使用alpha通道。我已经检查了tripple以确保图像中有一个。除非它在同步到itunes时被删除?

以下是我在图像拾取器完成拾取时使用的代码:

代码语言:javascript
复制
-(void)imagePickerController: (UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{   
    //dissmiss picker
    [imagePopOver dismissPopoverAnimated:YES];

    //get the picker image
    UIImage *image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];

    //create image view for selected image
    UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
    imageView.frame = CGRectMake(0, 0, imageView.image.size.width, imageView.image.size.height);
    imageView.center = CGPointMake(512, 384);
    [imageLayer addSubview:imageView];

    //release image and image view
    [image release];
    [imageView release];
}

我做错了什么?我希望这不是“Doh!”片刻。

EN

回答 3

Stack Overflow用户

发布于 2012-11-14 13:07:47

正如Kangoo在他们自己的答案中所说的那样,UIImagePicker确实支持带有alpha通道的图像。

然而,它正常工作的条件比通过浏览器将图像下载到图片库要复杂得多。

首先,使用iOS的图像拾取器只从相机卷中拾取是最有意义的。在iOS设备上,可以将邮件或Safari中的图像保存到Camera Roll中,而其他支持alpha通道图像的应用程序可以将图像保存到Camera Roll中。

照片库中的其他图像,而不是相机卷轴,将通过iTunes同步到达那里。这是一个问题。尽管OSX上的iPhoto确实支持带有alpha通道的PNG图像,但当iTunes同步将这些图像推送到iOS设备时,图像背景的透明区域会变成不透明的白色。

其次,如果你将iOS的图像选择器配置为允许编辑(方形裁剪、移动、缩放),那么图像背景的透明区域将变成不透明的黑色!

但是,如果将iOS的图像拾取器配置为不允许编辑,并且从相机胶卷中拾取图像,则拾取的图像(UIImage)可能具有alpha通道。

在拾取的UIImage上,使用CGImageGetAlphaInfo(pickedImage.CGImage)获取CGImageAlphaInfo,如果该信息不是(kCGImageAlphaNone、kCGImageAlphaNoneSkipFirst或kCGImageAlphaNoneSkipLast),则图像具有alpha通道。

票数 6
EN

Stack Overflow用户

发布于 2011-11-07 12:35:16

不要紧。正如我所怀疑的那样。通过itunes导入png (同步)时,alpha通道不知何故丢失。必须转换为24位?我把我的照片上传到网上,然后通过浏览器下载到图片库,现在一切都好了。

票数 0
EN

Stack Overflow用户

发布于 2011-11-06 17:20:04

你有没有试过打电话:

代码语言:javascript
复制
imageView.backgroundColor = [UIColor clear]

您可能还需要确保imageLayer是透明的。我不确定这是如何实现的。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8024543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档