gpt4 book ai didi

iPhone : How to change color of particular pixel of a UIImage?

转载 作者:可可西里 更新时间:2023-11-01 03:29:09 27 4
gpt4 key购买 nike

我有一个 UIImage,我想更改其特定像素的颜色,比如 224 x 200th 像素。我怎样才能做到这一点?有可能做到吗?提前致谢。

最佳答案

经过一整天的大量搜索后,我得到了确切的解决方案,虽然我找到了很多,但没有一个有效。这是我得到的,它完美地工作-:

// 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];

关于iPhone : How to change color of particular pixel of a UIImage?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16462129/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com