Как я могу установить альфа UIImage? - PullRequest
0 голосов
/ 07 сентября 2011

Когда я объединяю два UIImage (используя drawinrect :), они оба имеют одинаковую альфу, хотя предполагается, что один из них меньше 1.0.Как я могу изменить альфа конкретно UIImage?

Ответы [ 3 ]

1 голос
/ 07 сентября 2011

Вы не можете изменить альфа UIImage. Вы можете нарисовать его альфа в новом контексте и получить новое изображение из этого. Или вы можете извлечь CGImage, затем извлечь данные, затем настроить альфа-байты, затем создать новый CGImage из данных и новый UIImage из CGImage.

Но в этом случае просто используйте drawInRect:blendMode:alpha: вместо drawInRect:.

0 голосов
/ 16 января 2016

Вот категория UIImage.

использование >>

UIImage * imgNew = [imgOld cloneWithAlpha: .3];

код >>

- (UIImage *)cloneWithAlpha:(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;
    }

ref >> Как установить непрозрачность / альфа UIImage?

0 голосов
/ 07 сентября 2011

Если UIImage отображается внутри UIImageView, вы можете установить свойство alpha в UIImageView.

...