2

我有一张用我的 iOS 设备拍摄的图像,其中包含几行文字和一点背景颜色(红色)。我希望图像只向用户显示单词(他们会做类似的事情)。我不能以任何方式使用 UIImageView,所以简单地拍摄图像并将其放在背景上是行不通的。

所以我想知道是否有人可以告诉我以下哪种方法会给我最好的结果,如果可能的话,例子会很好。我已经在下面发布了我尝试做的事情的代码(选项 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)];
4

1 回答 1

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 之间。现在它看起来是透明的。

于 2012-10-29T07:20:41.300 回答