2012-10-29 185 views
2

我有一個圖像,我用我的iOS設備,包含幾行字和一點背景色(紅色)。我希望圖像只顯示給用戶(他們會做類似的事情)。我無法以任何方式使用UIImageView,因此僅僅將圖像放在背景上並不適用。透明度iOS

所以我想知道如果有人能告訴我哪種下面的方法會給我最好的結果,如果可能的話,例子會很好。我已經在下面的代碼中發佈了我曾嘗試過的小運氣(選項2)。

  1. 使背景白色所以只有詞出現
  2. 從圖像預先取出紅色

由於

UIImage *image = [UIImage imageNamed:@"pic1.jpg"]; 

const float colorMasking[6] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}; 
image = [UIImage imageWithCGImage: CGImageCreateWithMaskingColors(image.CGImage, colorMasking)]; 

回答

2
UIImage *image = [UIImage imageNamed:@"image1.jpg"]; 
UIImage *inputImage = [UIImage imageWithData:UIImageJPEGRepresentation(image, 1.0)]; 

const float colorMasking[6] = {225.0, 255.0, 225.0, 255.0, 225.0, 255.0}; 
CGImageRef imageRef = CGImageCreateWithMaskingColors(inputImage.CGImage, colorMasking); 

UIImage *img2 = [UIImage imageWithCGImage:imageRef]; 

我已刪除的淺灰色顏色來自我的圖像背景。對於RGB,顏色範圍在225和255之間。現在看起來很透明。

+0

非常感謝!但是,你能告訴我如何去除除黑色或灰色之外的所有顏色(這些是圖像中的文本)的值嗎?現在,當我運行你的代碼時,它似乎沒有太大的影響。再次感謝 –

+0

您可以將RGB的最小範圍更改爲1,以便只保留黑色並將所有其他顏色從圖像中移除。 const float colorMasking [6] = {1.0,255.0,1.0,255.0,1.0,255.0}; – AJS

+0

感謝您的快速回復。當我這樣做時,它會讓我的整個屏幕(圖像)變成白色。你知道爲什麼嗎?無論如何,我會接受的,但如果你能回答,這將意味着很多。謝謝 –