Как растеризовать строку (Mac) - PullRequest
0 голосов
/ 08 октября 2009

Я пытаюсь взять строку NSSt и растеризовать ее как растровое изображение (массив байтов (RGBA))

Самое близкое, что я получил к любой информации о том, как сделать что-то подобное, было в сообщении на форуме, в котором предлагалось что-то вроде


    NSString *myString = [[NSString alloc] initWithString:@"This is a test"];
    NSSize size = {256, 256};
    NSImage *myImage = [[NSImage alloc] initWithSize:size];


    [myImage lockFocus];
    // if you have a second image you're going to overlay on top of the first, do the same except use NSCompositeSourceOver as the operation
    [myString drawAtPoint: NSMakePoint(0, 0)];
    [myImage unlockFocus];

    NSData *tiffData = [myImage TIFFRepresentation];

К сожалению, приложение зависает / падает при [myImage lockFocus].

Я также изучал это в CoreGraphics, но нашел еще меньше информации об этом. Я получаю фрагменты, то есть растровые контексты и объекты шрифтов, но ничего, что намекает на движение, «растеризовать эту строку»

Если у кого-то есть какие-то идеи о том, как это сделать, это было бы очень признательно

Спасибо.

[править] Я только что заметил это , и именно здесь я делаю очевидным, что это ново для меня. Могу ли я создать CGContextRef, используя CGBitmapContextCreate, а затем «протолкнуть» его, используя UIGraphicsPushContext, чтобы любой последующий drawAtPoint отображал этот контекст ref? Извините, сейчас я думаю вслух. Я должен просто попробовать это. [Edit2] UIGraphicsPushContext - это метод UIKit, который, к сожалению, означает iPhone только, насколько я знаю.

1 Ответ

0 голосов
/ 10 ноября 2009

Я также могу ответить на свой пост (через месяц)

По сути, вы должны создать CFString, а затем использовать его для создания CTLine. Существуют методы, которые можно использовать для поиска измерения CTLine, которые затем можно использовать для создания растрового контекста с использованием CGBitmapContextCreate.

Оттуда объект CTLine может быть визуализирован в контекст растрового изображения с помощью CTLineDraw.

Документы достаточно хороши для объяснения всех других требований, таких как положение, цвет и т. Д., Но в этом суть всех тех, кому это интересно.

Большая часть информации, которую я использовал для начала, на самом деле была взята с этого сайта

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...