我正在尝试将 NSImage 读入 NSBitmapImageRep,以更改某些像素的颜色。程序应该读取每个像素的颜色值,并检查它是否等于颜色井选择的颜色。我有一个名为“MainImageView”的 ImageView 和一个名为“MainColor”的 ColorWell。那是我的代码:
- (IBAction)ScanImg:(id)sender {
NSBitmapImageRep *ImgRep = [[NSBitmapImageRep alloc]initWithData: MainImageView.image.TIFFRepresentation];
for (int pixelx = 0; pixelx < ImgRep.pixelsWide; pixelx ++) {
for (int pixely = 0; pixely < ImgRep.pixelsHigh;pixely ++){
if ([ImgRep colorAtX:pixelx y:pixely] == MainColor.color) {
[ImgRep setColor: [NSColor whiteColor] atX:pixelx y:pixely];
} else{
[ImgRep setColor: [NSColor blackColor] atX:pixelx y:pixely];
}
}
}
struct CGImage *CG = [ImgRep CGImage];
NSImage *Image = [[NSImage alloc] initWithCGImage:CG size:ImgRep.size];
MainImageView.image = Image;
}
但是代码在图片上没有任何改变!有什么问题?还是有另一种方法来改变像素的颜色?
谢谢您的帮助!大日