我有一個UIImage,我想改變其特定像素的顏色,比如說224 x 200像素。我怎樣才能做到這一點?它甚至有可能做到嗎?提前致謝。iPhone:如何更改UIImage特定像素的顏色?
6
A
回答
8
經過大量的搜索後,我得到了確切的解決方案,儘管我發現了很多但他們都沒有工作。以下是我已經得到的,它完美的作品 - :
// This method creates an image by changing individual pixels of an image. Color of pixel has been taken from an array of colours('avgRGBsOfPixel')
-(void)createTexture{
self.sampleImage = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"whitebg.jpg"]];
CGRect imageRect = CGRectMake(0, 0, self.sampleImage.image.size.width, self.sampleImage.image.size.height);
UIGraphicsBeginImageContext(sampleImage.image.size);
CGContextRef context = UIGraphicsGetCurrentContext();
//Save current status of graphics context
CGContextSaveGState(context);
CGContextDrawImage(context, imageRect, sampleImage.image.CGImage);
// And then just draw a point on it wherever you want like this:
// CGContextFillRect(context, CGRectMake(x,y,1,1));
//Fix error according to @gsempe's comment
int pixelCount =0;
for(int i = 0 ; i<sampleImage.image.size.width ; i++){
for(int j = 0 ; j<sampleImage.image.size.height ; j++){
pixelCount++;
int index = pixelCount/pixelCountForCalculatingAvgColor;
// NSLog(@"Index : %d", index);
if(index >= [avgRGBsOfPixel count]){
index = [avgRGBsOfPixel count] -1;
NSLog(@"Bad Index");
}
// if(pixelCount >9999){
// pixelCount = 9999;
// NSLog(@"Bad Index");
// }
UIColor *color = [avgRGBsOfPixel objectAtIndex:index];
float red ,green, blue ,alpha ;
[color getRed:&red green:&green blue:&blue alpha:&alpha];
CGContextSetRGBFillColor(context, red , green, blue , 1);
CGContextFillRect(context, CGRectMake(i,j,1,1));
}
}
// Then just save it to UIImage again:
CGContextRestoreGState(context);
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
[self.iv setImage:img];
}
0
它可能與核心圖形。 link有代碼將圖像轉換爲灰度。您可以根據需要修改它。
0
CGContextRef完成所有這一切。你可以用這個做各種魔術。
Here are some slides基本用法。
相關問題
- 1. 更改UIImage中某些特定像素的顏色
- 2. 更改UIImage的像素顏色值
- 3. 如何在uiimage中更改單個像素的顏色
- 4. UIImage/CGImage改變我的像素顏色
- 5. 如何更改UIImage部分的顏色?
- 6. 更改像素的顏色
- 7. 更改UIImage中的顏色
- 8. 更改圖像中的特定顏色
- 9. 我如何更改iphone sdk中的uiimage顏色xcode
- 10. 如何更改特定JButton的顏色
- 11. 通過像素數組更改UIImage的顏色
- 12. 無法更改UIImage中像素的顏色
- 13. 更改像素顏色Python
- 14. HLSL像素着色器 - 更改特定色相的圖像顏色
- 15. 如何更改圖像上的眼睛顏色(uiimage)?
- 16. 如何讓像素符合位圖UIImage中的指定顏色?
- 17. 如何更改特定的Visual Studio元素的顏色
- 18. 如何更改特定行中所有select2元素的顏色
- 19. 如何使用ColorStateList更改特定元素BottomNavigationView的顏色?
- 20. 如何更改圖像中的特定顏色?
- 21. 獲取UIImage的像素顏色
- 22. Qt/PyQt(/其他?):如何更改像素圖中的特定顏色?
- 23. Iphone SDK:更改圖像顏色
- 24. 通過片段/像素着色器改變特定的像素顏色?(opengl)
- 25. 如何將UIImage中的顏色「白色」更改爲透明
- 26. 如何找出圖像中的「特定像素的顏色」?
- 27. 更改位圖的像素顏色
- 28. 更改SDL中的像素顏色
- 29. 更改GdkPixbuf(GTK3)中像素的顏色
- 30. 更改點擊像素的顏色
什麼是pixelCountForCalculatingAvgColor和avgRGBsOfPixel的價值?它不編譯.. – 2014-12-04 05:58:08
嗨嗨,我不明白我們實際設置/更改像素顏色的哪一行或哪一行?請解釋一下 – 2016-03-11 15:46:51
@Vipul J你能清楚這個未定義的事情嗎?pixelCountForCalculatingAvgColor的值和avgRGBsOfPixel的數組值是什麼? – 2016-06-03 05:28:12