我有一个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. 更改像素的颜色
- 5. 更改UIImage中的颜色
- 6. 更改图像中的特定颜色
- 7. 我如何更改iphone sdk中的uiimage颜色xcode
- 8. 如何更改特定JButton的颜色
- 9. 无法更改UIImage中像素的颜色
- 10. 如何更改图像上的眼睛颜色(uiimage)?
- 11. 如何使用ColorStateList更改特定元素BottomNavigationView的颜色?
- 12. 如何更改特定行中所有select2元素的颜色
- 13. 获取UIImage的像素颜色
- 14. Qt/PyQt(/其他?):如何更改像素图中的特定颜色?
- 15. 通过片段/像素着色器改变特定的像素颜色?(opengl)
- 16. 如何找出图像中的“特定像素的颜色”?
- 17. 更改像素图的颜色
- 18. 更改位图的像素颜色
- 19. 更改GdkPixbuf(GTK3)中像素的颜色
- 20. Android - 更改位图的像素颜色
- 21. 如何将UIImage中的颜色“白色”更改为透明
- 22. Iphone SDK:更改图像颜色
- 23. 如果特定条件满足,更改子元素的颜色
- 24. 如何在iPhone摄像头预览窗口中即时更改像素颜色?
- 25. 将基于RBG值的UIImage中的特定像素更改为不同的RBG颜色
- 26. Android在更改图像时更改了像素的颜色
- 27. 如何在iphone中将UIImage的背景更改为不同的颜色
- 28. 更改像素颜色作为其颜色的功能
- 29. 如何改变一个UIImage的颜色斯威夫特
- 30. 如何在swift中找到UIImage中单个像素的颜色
什么是pixelCountForCalculatingAvgColor和avgRGBsOfPixel的价值?它不编译.. – 2014-12-04 05:58:08
嗨嗨,我不明白我们实际设置/更改像素颜色的哪一行或哪一行?请解释一下 – 2016-03-11 15:46:51
@Vipul J你能清楚这个未定义的事情吗?pixelCountForCalculatingAvgColor的值和avgRGBsOfPixel的数组值是什么? – 2016-06-03 05:28:12