11

たとえば、iOSツールバーで、不透明な黒と透明な独自の.pngをドラッグすると、iOSの青い光沢が自動的に追加されます。

ただし、これを自分で行う方法を知りたいのですが、単色で十分です。

たとえば、この画像がある場合: 例

その全体を無地、ピンク、青、または灰色にするために何をしますか?アプリに保存する.pngのバージョン数を、コードで色付けすることで削減したいと思います。

ありがとうございました!

4

2 に答える 2

15

これはあなたのためにそれをするはずです:

- (UIImage *)colorImage:(UIImage *)origImage withColor:(UIColor *)color
{
    UIGraphicsBeginImageContextWithOptions(origImage.size, YES, 0);
    CGContextRef context = UIGraphicsGetCurrentContext();

    CGContextSetFillColorWithColor(context, [color CGColor]);
    CGContextFillRect(context, (CGRect){ {0,0}, origImage.size} );

    CGAffineTransform flipVertical = CGAffineTransformMake(1, 0, 0, -1, 0, origImage.size.height);
    CGContextConcatCTM(context, flipVertical);
    CGContextDrawImage(context, (CGRect){ pt, origImage.size }, [origImage CGImage]);

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

    return image;
}
于 2012-08-18T15:09:20.613 に答える
1

iOS 7以降、(グレースケール)/透明な画像をこのように単色で着色できるようになりました

UIImage *image = [UIImage imageNamed:@"myImage.png"];
UIImageView *imageView = [[UIImageView alloc]initWithImage:[image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]];
imageView.tintColor = [UIColor redColor];
于 2014-12-08T11:25:38.790 に答える