好的,我有一个问题。我有一个名为imageFromText的方法,它需要一个参数,字符串本身,它返回一个NSImage。我还有一个名为:imageFromView,这个基本上必须“截取”视图并返回一个NSImage,它也只有一个参数,即视图本身。所以它看起来像这样:
-(NSImage*)imageFromText: (NSString*)text {
}
-(NSImage*)imageFromView: (NSView*)view {
}
只有一个问题,我不知道该怎么做。那么,我花了我的下午搜索周围,我什么都没发现。我已经尝试过第二个方法dataWithPDFInsideRect,但很明显,这个方法没有针对这个提议。请帮帮我! 请不要:我不是要求准备好的代码。像老人一样(在我的县里):不要给他们鱼,他们如何钓鱼。 (翻译)。
答案 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:
。