我使用Quartz在iOS上創建透明圖像。但是,此圖像在模擬器中顯示爲正確的透明度,但在設備上顯示爲白色背景。爲什麼透明圖像在設備上以白色背景顯示?
這裏是我使用此代碼:
+ (UIImage *)clearRect:(CGRect)rect inImage:(UIImage *)image {
if (UIGraphicsBeginImageContextWithOptions != NULL)
UIGraphicsBeginImageContextWithOptions([image size], NO, 0.0);
else
UIGraphicsBeginImageContext([image size]);
CGContextRef context = UIGraphicsGetCurrentContext();
[image drawInRect:CGRectMake(0.0, 0.0, [image size].width, [image size].height)];
CGContextClearRect(context, rect);
UIImage *result = UIGraphicsGetImageFromCurrentImageContext();
NSData *data= UIImagePNGRepresentation(result);
UIImage *img = [UIImage imageWithData:data];
UIGraphicsEndImageContext();
return img;
}
這是我所看到的設備:
什麼可能我是做錯了什麼?
我粘貼了你的代碼,在資源中插入了一張圖片,在iPad 2上運行它,將它保存爲png文件並在PS中打開。它是透明的。你似乎在做其他的事情。 –
其在模擬器中顯示透明..但不顯示在設備中..順便說一句,謝謝.. – Mani
我測試了你在設備上發佈的方法。它工作正常。您呈現方式肯定有問題。至於「如何在iOS中創建透明圖像」這個問題,答案已經是您發佈的代碼。您在設備上的應用中呈現的結果是什麼?你看到或沒有看到你在模擬器中做什麼? –