1. ホーム
  2. ios

[解決済み] UIImageの不透明度やアルファ値を設定するには?

2023-05-14 04:07:54

質問

UIImageViewでできるのはわかったのですが、UIImageにできるのでしょうか? UIImageViewのanimation images arrayプロパティに、同じ画像で不透明度が異なるものを配列させたいのです。 どうでしょうか?

どのように解決するのですか?

私はちょうどこれをする必要があったが、Steven の解決策は遅いだろうと思った。 これはうまくいけばグラフィックス HW を使用するはずです。 UIImage にカテゴリを作成します。

- (UIImage *)imageByApplyingAlpha:(CGFloat) alpha {
    UIGraphicsBeginImageContextWithOptions(self.size, NO, 0.0f);

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

    CGContextScaleCTM(ctx, 1, -1);
    CGContextTranslateCTM(ctx, 0, -area.size.height);

    CGContextSetBlendMode(ctx, kCGBlendModeMultiply);

    CGContextSetAlpha(ctx, alpha);

    CGContextDrawImage(ctx, area, self.CGImage);

    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    return newImage;
}