Как создать обтравочную маску из NSAttributedString? - PullRequest
0 голосов
/ 03 апреля 2011

У меня есть NSAttributedString, которую я хотел бы нарисовать в CGImage, чтобы позже я мог нарисовать CGImage в NSView.Вот что у меня есть:

// Draw attributed string into NSImage
NSImage* cacheImage = [[NSImage alloc] initWithSize:NSMakeSize(w, h)];
[cacheImage lockFocus];
[attributedString drawWithRect:NSMakeRect(0, 0, width, height) options:0];
[cacheImage unlockFocus];

// Convert NSImage to CGImageRef
CGImageSourceRef source = CGImageSourceCreateWithData(
    (CFDataRef)[cacheImage TIFFRepresentation], NULL);
CGImageRef img =  CGImageSourceCreateImageAtIndex(source, 0, NULL);

Я не использую - [NSImage CGImageForProposedRect: context: hints], потому что мое приложение должно использовать SDK 10,5.Мой NSView, использующий CGContextDrawImage, рисует прозрачный фон вокруг текста, заставляя все, что находится за окном, просвечивать.Я думаю, что хочу создать обтравочную маску, но я не могу понять, как это сделать.

1 Ответ

0 голосов
/ 14 апреля 2011

Похоже, ваш режим смешивания настроен как «Копировать вместо SourceOver». Взгляните на документацию по режиму наложения CoreGraphics .

...