2011-11-06 26 views
2

我正在使用UIImagePicker加載圖片,我上傳到照片庫(在我的iPad上),但是它沒有alpha通道加載。 我有tripple檢查,以確保圖像有一個。除非它在同步到iTunes時被刪除?如何使用UIImagePicker加載圖片的阿爾法

這裏是代碼我使用的圖像拾取當它完成採摘:

-(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!'時刻。

回答

-1

你有沒有打過電話:

imageView.backgroundColor = [UIColor clear] 

也許你可能需要確保imageLayer是透明的,太。我不確定這是如何實施的。

0

沒關係。這是我懷疑的。當通過iTunes導入png(同步)時,Alpha通道會以某種方式丟失。必須轉換爲24位?我將我的圖片上傳到網絡,然後通過瀏覽器下載到照片庫,現在沒問題。

6

正如Kangoo在自己的答案中所述,UIImagePicker確實支持帶有alpha通道的圖像。

但是,它正常工作的條件比通過瀏覽器將圖像下載到照片庫更加複雜。

首先,使用iOS的圖像選擇器只能從相機膠捲中選取是最有意義的。在iOS設備上,可以將圖像從Mail或Safari保存到相機膠捲中,其他支持具有Alpha通道圖像的應用程序允許您保存到相機膠捲。

除了相機膠捲以外,其他照片庫中的圖像都會通過iTunes同步獲得。這是一個問題。儘管OSX上的iPhoto確實支持帶alpha通道的PNG圖像,但當iTunes同步將這些圖像推送到iOS設備時,圖像背景的透明區域會變成不透明的白色。其次,如果您將iOS的圖像選擇器配置爲允許編輯(方形裁切,移動,縮放),則圖像背景的透明區域將變得不透明的黑色!

但是,如果您將iOS的圖像選擇器配置爲不允許編輯,並且您從相機膠捲中選取圖像,則所選圖像(UIImage)可以具有Alpha通道。

在拾取的UIImage,使用CGImageGetAlphaInfo(pickedImage.CGImage)來獲得CGImageAlphaInfo,並且如果該信息不是(kCGImageAlphaNone或kCGImageAlphaNoneSkipFirst或kCGImageAlphaNoneSkipLast),則圖像具有alpha通道。

+0

歡迎來到計算器。你可以通過添加一些引用使這個答案更有用。 – CCoder