Подтвердить что ты не робот

Слияние двух UIImages

У меня есть imageA (взято из камеры iPhone для пользователей) и imageB, изображение с глупым бордером (например, с большим количеством прозрачного альфа-пространства).

Что я хотел бы сделать, так это объединить эти два изображения, заложив imageB поверх imageA, а затем сохраните их как imageC для другой работы.

Есть ли способ сделать это?

Приветствия

У меня это до сих пор

-(void)merge
{
    CGSize size = CGSizeMake(320, 480);
    UIGraphicsBeginImageContext(size);

    CGPoint thumbPoint = CGPointMake(0,0);
    UIImage *imageA = imageView.image;
    [imageA drawAtPoint:thumbPoint];

    UIImage* starred = [UIImage imageNamed:@"imageB.png"];

    CGPoint starredPoint = CGPointMake(0, 0);
    [starred drawAtPoint:starredPoint];

    UIImage *imageC = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    imageView.image = imageC;
}

Я не вижу/не знаю, что я делаю неправильно здесь

4b9b3361

Ответ 1

Этот код выглядит корректно (хотя я бы рекомендовал преобразовать его для использования созданного CGBitmapContext для обеспечения безопасности потоков), но это imageB должен быть JPEG? JPEG не поддерживают прозрачность, поэтому для того, чтобы смешение работало, это действительно должно быть PNG.

Ответ 2

Обратите внимание, что для поддержки сетчатки вам необходимо использовать: UIGraphicsBeginImageContextWithOptions(size, YES, 0); // 0 means let iOS deal with scale for you