从视图,字符串等创建图像

时间:2011-10-03 21:54:18

标签: macos cocoa nsstring nsimage

好的,我有一个问题。我有一个名为imageFromText的方法,它需要一个参数,字符串本身,它返回一个NSImage。我还有一个名为:imageFromView,这个基本上必须“截取”视图并返回一个NSImage,它也只有一个参数,即视图本身。所以它看起来像这样:

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


}

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


}

只有一个问题,我不知道该怎么做。那么,我花了我的下午搜索周围,我什么都没发现。我已经尝试过第二个方法dataWithPDFInsideRect,但很明显,这个方法没有针对这个提议。请帮帮我! 请不要:我不是要求准备好的代码。像老人一样(在我的县里):不要给他们鱼,他们如何钓鱼。 (翻译)。

4 个答案:

答案 0 :(得分:2)

至于imageFromView:查看Screen Capture的管理器文档。

和imageFromText:你想要一个只显示文字的图像(我假设是PNG)吗?您不想指定图像大小,字体大小,字体颜色,背景颜色等内容吗??

答案 1 :(得分:2)

总结,锁定图像上的焦点,然后绘制。如果你搜索lockFocus,NSImage文档应该有更多。

答案 2 :(得分:2)

您感兴趣的方法是:

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

要绘制到图像,请分配一个图像,然后将焦点锁定在图像上,然后发出绘图调用,然后解锁焦点。

要将视图绘制到图像中,请将焦点锁定在图像上,获取当前图形上下文(现在是图像),然后将其传递给 - [NSView displayRectIgnoringOpacity:inContext:]。

答案 3 :(得分:2)

另一种方法是将焦点锁定在视图上,然后将create a bitmap image rep锁定在the view's bounds的内容上。然后,您可以create a blank image whose size is边界的大小,add the image rep to it

第三种方式是dataWithPDFInsideRect:。是的,那个你尝试过但无法上班的人(我希望你能解释一下你遇到的问题,而不仅仅是解雇它!)。传递视图的边界,然后将数据传递给NSImage的initWithData: