Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 从视图、字符串等创建图像_Macos_Cocoa_Nsstring_Nsimage - Fatal编程技术网

Macos 从视图、字符串等创建图像

Macos 从视图、字符串等创建图像,macos,cocoa,nsstring,nsimage,Macos,Cocoa,Nsstring,Nsimage,好吧,我有个问题。我有一个名为imageFromText的方法,它需要一个参数,字符串本身,并返回一个NSImage。我还有另一个叫做:imageFromView,这个基本上需要“截屏”视图并返回一个NSImage,它也只有一个参数,视图本身。看起来是这样的: -(NSImage*)imageFromText: (NSString*)text { } -(NSImage*)imageFromView: (NSView*)view { } 只有一个问题,我不知道怎么做。所以,我花了一下

好吧,我有个问题。我有一个名为imageFromText的方法,它需要一个参数,字符串本身,并返回一个NSImage。我还有另一个叫做:imageFromView,这个基本上需要“截屏”视图并返回一个NSImage,它也只有一个参数,视图本身。看起来是这样的:

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


}

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


}
只有一个问题,我不知道怎么做。所以,我花了一下午的时间四处搜索,什么也没找到。对于第二种方法,我尝试了一种dataWithPDFInsideRect方法,但是很明显,这种方法并不是为了这个目的而提出的。请帮帮我!。
请不要:我不是要求代码准备好。就像旧的口述(在我的县):不要给他们鱼,教他们如何钓鱼。(翻译)。

至于imageFromView:查看组织者文档中的
屏幕截图


和imageFromText:你想要一个只显示文本的图像(我想是PNG)?是否要指定图像大小、字体大小、字体颜色、背景色等内容?

总结,锁定图像焦点,然后绘制。如果您搜索lockFocus,NSImage文档应该会有更多内容。

您感兴趣的方法有:

-[NSImage lockFocus]
+[NSGraphicsContext currentContext]
-[NSView displayRectIgnoringOpacity:inContext:]
-[NSImage lockFocus]
若要绘制图像,请分配一个图像,然后在其上锁定焦点,然后发出绘制调用,然后解锁焦点


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

另一种方法是将焦点锁定在视图上,然后使用的内容。然后,您可以调整边界的大小,并


第三种方法是
dataWithPDFInsideRect:
。是的,就是你试过但没能开始工作的那一个(我希望你能解释一下你有什么问题,而不是简单地不予理睬!)。传递视图的边界,然后将数据传递到NSImage的
initWithData:

哦,是的,对不起,我没有把它放在主要问题中,我确实想这样做,但是你知道如何将内容转换为NSImage吗?感谢您的回答。请检查Quartz 2D是否适用于您的需要。除了其他东西,你还可以画文本。非常非常感谢。先生,你是个天才。