Создание изображений из представлений, строк и т. Д. - PullRequest
0 голосов
/ 04 октября 2011

Хорошо, у меня проблема.У меня есть метод, который называется imageFromText, он требует один параметр, сама строка, и он возвращает NSImage.У меня также есть еще один, который называется: imageFromView, этот в основном должен «сделать снимок экрана» представления и вернуть NSImage, у него также есть только один параметр, само представление.Так это выглядит так:

-(NSImage*)imageFromText: (NSString*)text {


}

-(NSImage*)imageFromView: (NSView*)view {


}

Есть только одна проблема, я понятия не имею, как это сделать.Ну что ж, я провел свой день в поисках и ничего не нашел.Я пытался, ко второму, метод dataWithPDFInsideRect, но, очевидно, этот метод не был сделан для этой цели.Пожалуйста, помогите мне!ПОЖАЛУЙСТА, НЕ: Я не прошу код готов.НРАВИТСЯ СТАРАЯ ДИКТАЦИЯ (В МОЕЙ СТРАНЕ): НЕ ДАВАЙТЕ ИМ РЫБ, ИМ, КАК ИМ КАК РЫБИТЬ(Переведенный).

Ответы [ 4 ]

2 голосов
/ 04 октября 2011

Альтернативным способом является блокировка фокуса на представлении , затем создание растрового изображения rep с содержанием границ представления .Затем вы можете создать пустое изображение размером размера границ и добавить к нему изображение представителя .

Третий способ - dataWithPDFInsideRect:.Да, тот, который вы попробовали и не смогли добраться до работы (хотелось бы, чтобы вы объяснили, с чем у вас возникла проблема, а не просто уволили!).Передайте границы представления, затем передайте данные в NSImage initWithData:.

2 голосов
/ 04 октября 2011

Подводя итог, заблокируйте фокус на изображении, затем нарисуйте. Документов NSImage должно быть больше, если вы ищете lockFocus.

2 голосов
/ 04 октября 2011

Интересующие вас методы:

-[NSImage lockFocus]
+[NSGraphicsContext currentContext]
-[NSView displayRectIgnoringOpacity:inContext:]
-[NSImage lockFocus]

Чтобы нарисовать изображение, выделите его, а затем заблокируйте фокус на нем, затем выполните вызовы для рисования и затем разблокируйте фокус.

Чтобы нарисовать вид на изображении, заблокируйте фокус на изображении, получите текущий графический контекст (который теперь является изображением) и передайте его в - [NSView displayRectIgnoringOpacity: inContext:].

2 голосов
/ 04 октября 2011

Что касается imageFromView: проверьте документацию Организатора для Screen Capture.

И imageFromText: Вы хотите изображение (я полагаю, PNG), которое просто показывает текст? Разве вы не хотите указывать такие параметры, как размер изображения, размер шрифта, цвет шрифта, цвет фона, ...?

...