1

我的应用程序允许用户将具有 alpha 值的图像保存/加载到设备上的相机胶卷中。我可以在照片应用程序中看到这些图像是适当的 alpha'd,因为 alpha'd 区域只是显示为黑色。但是,当我使用来自字典的valueForKey:UIImagePickerControllerOriginalImage消息将这些图像加载回应用程序时,alpha 值将变为白色,从而使这些部分变得不透明。有没有办法保留这些 alpha 值?info(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info

4

2 回答 2

1

发现了!这是我这样做的功能。您的里程可能会有所不同!:

- (UIImage*)processImage:(UIImage*)image
{
    CGImageRef reference = image.CGImage;
    float colors[6] = {0xEE, 0xFF, 0xEE, 0xFF, 0xEE, 0xFF};
    CGImageRef newimage = CGImageCreateWithMaskingColors(reference, colors);
    UIImage *result = [[UIImage alloc] initWithCGImage:newimage];
    CGImageRelease(newimage);
    return result;
}
于 2010-05-20T01:49:54.987 回答
0

您应该使用 ALAssetsLibrary 访问原始图像,如下所述:http: //www.proace.com/2011/05/27/loading-png-images-using-uiimagepickercontroller-causes-them-to-lose-transparency -和-做什么-关于它/

于 2012-05-31T11:04:02.057 回答