@Scalar

Странная черная окантовка вокруг PNG изображения, в местах полупрозрачности (CoreGraphics/ObjC)

Когда я пытаюсь отрисовать PNG изображения с полупрозрачностью, получается вот что:
image
Т.е. странные темные пиксели в местах с полупрозрачностью, хотя их там явно не должно быть.

Оригинальное изображение — нормальное:
image

Код отрисовки:

                glEnable(GL_BLEND);
                glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

                UIImage* allIcons = [[appDelegate load_image_from_zip: pl.icons[ico_index]] retain];

                CGRect rect = CGRectMake( 0, 0, allIcons.size.width/nIcons, allIcons.size.height );
                UIGraphicsBeginImageContext(rect.size);

                CGContextRef currentContext = UIGraphicsGetCurrentContext();

                CGContextTranslateCTM ( currentContext, 0, allIcons.size.height );
                CGContextScaleCTM ( currentContext, 1, -1 );

                CGRect clippedRect = CGRectMake(0, 0, rect.size.width, rect.size.height);
                CGContextClipToRect( currentContext, clippedRect);
                CGRect drawRect = CGRectMake(rect.origin.x * -1, rect.origin.y * -1, allIcons.size.width, allIcons.size.height);
                CGContextDrawImage(currentContext, drawRect, allIcons.CGImage);


ЧЯДНТ?
Plz help!
  • Вопрос задан
  • 2556 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Infernal
Попробуйте вывать CGContextSetBlendMode(currentContext, kCGBlendModeSourceIn) перед CGContextDrawImage

glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

а вот этот кусок тут явно лишний
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы