相关疑难解决方法(0)

改变UIImage颜色

我试图改变UIImage的颜色.我的代码:

-(UIImage *)coloredImage:(UIImage *)firstImage withColor:(UIColor *)color {
    UIGraphicsBeginImageContext(firstImage.size);

    CGContextRef context = UIGraphicsGetCurrentContext();
    [color setFill];

    CGContextTranslateCTM(context, 0, firstImage.size.height);
    CGContextScaleCTM(context, 1.0, -1.0);

    CGContextSetBlendMode(context, kCGBlendModeCopy);
    CGRect rect = CGRectMake(0, 0, firstImage.size.width, firstImage.size.height);
    CGContextDrawImage(context, rect, firstImage.CGImage);

    CGContextClipToMask(context, rect, firstImage.CGImage);
    CGContextAddRect(context, rect);
    CGContextDrawPath(context,kCGPathElementMoveToPoint);

    UIImage *coloredImg = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return coloredImg;
}
Run Code Online (Sandbox Code Playgroud)

这段代码有效,但获得的图像不是很好:返回图像的边界像素是间歇性的,不像我的第一张图像那么平滑.我该如何解决这个问题?

iphone objective-c uiimage cgcontext ios

87
推荐指数
6
解决办法
8万
查看次数

iPhone - 如何为图像着色?

我很想知道如何为图像着色(例如,制作白色.png红色).我已经看到了各种建议,但从未确认这实际上是可行的.我试过这个:

-(UIImage *)colorizeImage:(UIImage *)baseImage color:(UIColor *)theColor {
    UIGraphicsBeginImageContext(baseImage.size);

    CGContextRef ctx = UIGraphicsGetCurrentContext();
    CGRect area = CGRectMake(0, 0, baseImage.size.width, baseImage.size.height);

    CGContextScaleCTM(ctx, 1, -1);
    CGContextTranslateCTM(ctx, 0, -area.size.height);
    CGContextSaveGState(ctx);
    CGContextClipToMask(ctx, area, baseImage.CGImage);
    [theColor set];
    CGContextFillRect(ctx, area);
    CGContextRestoreGState(ctx);
    CGContextSetBlendMode(ctx, kCGBlendModeNormal);
    CGContextDrawImage(ctx, area, baseImage.CGImage);
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return newImage;
}

myImageView.image = [self colorizeImage:[UIImage imageNamed:@"whiteImage.png"] color:[UIColor redColor]];
Run Code Online (Sandbox Code Playgroud)

但它不起作用 - 屏幕上的图像仍然是白色的.

iphone image colors

34
推荐指数
4
解决办法
2万
查看次数

是否可以通过编程方式更改图像的颜色?

我正在使用具有不同主题颜色的应用程序,但我不想在项目中有太多的图像资源(基本上不希望使项目大小太大),是否可以使用一个图像但不同颜色?

谢谢!

objective-c uiimage ios

5
推荐指数
2
解决办法
926
查看次数

标签 统计

ios ×2

iphone ×2

objective-c ×2

uiimage ×2

cgcontext ×1

colors ×1

image ×1