Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.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
NSImage-drawAtPoint:绘图太小_Image_Macos_Cocoa_Merge - Fatal编程技术网

NSImage-drawAtPoint:绘图太小

NSImage-drawAtPoint:绘图太小,image,macos,cocoa,merge,Image,Macos,Cocoa,Merge,我用这个来组合2幅NSIMAGE: newImage = [[NSImage alloc] initWithSize:NSMakeSize(size1.width, size1.height + size2.height)]; [newImage lockFocus]; [firimage drawAtPoint:NSMakePoint(0, 0) fromRect:

我用这个来组合2幅NSIMAGE:

newImage = [[NSImage alloc] initWithSize:NSMakeSize(size1.width,
                                                    size1.height + size2.height)];
[newImage lockFocus];
[firimage drawAtPoint:NSMakePoint(0, 0)
             fromRect:NSMakeRect(0, 0, size1.width, size1.height)
            operation:NSCompositeSourceOver
             fraction:1.0];
[secimage drawAtPoint:NSMakePoint(0, size1.height)
             fromRect:NSMakeRect(0, 0, size2.width, size2.height)
            operation:NSCompositeSourceOver
             fraction:1.0];
[newImage unlockFocus];
它会生成大小合适的图像(2个100x63图像会生成一个100x126图像),但两个单独的图像绘制得太小,因此生成的图像大部分为空白:

以下是原始图像:


正如我在评论中所说,使用
-drawInRect:fromRect:operation:fraction
解决了这个问题

我看你已经解决了。在使用您的代码时,我得到了类似的奇怪结果。所以我开始认为我并不真正理解这些方法

我通常总是使用
-drawInRect:fromRect:operation:fraction
,虽然我不是100%了解这两个矩形对结果的影响,但我总能得到我需要的结果

无论如何,我离开了,制作了一个小玩具应用程序来展示交互修改矩形的效果(根据您的问题使用两个图像)


,您可能想看看。

您的目标系统是什么?您知道,
compositeToPoint:
在OSX10.6+中已被弃用?您可以显示使用NSBitmapImageRep的代码吗?它没有弃用,但您是对的,我不应该使用它。检查-您应该使用DrawAtPoint:fromRect:operation:fraction:或DrawInRect:fromRect:operation:fraction:“如果您正在编写新代码或更新旧代码,则应避免使用此方法。相反,您应该使用drawAtPoint:fromRect:operation:fraction:或drawInRect:fromRect:operation:fraction:方法来绘制图像。尽管该方法本身没有遭到反对,但不建议将其提供的行为用于一般用途。”注意,要绘制整个图像,可以使用
NSZeroRect
fromRect
而不是
NSMakeRect(0,0,size1.width,size1.height)