3

我正在使用它来组合 2 个 NSImages :

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 图像),但是两个单独的图像绘制得太小,因此生成的图像大部分是空白的:

截屏

以下是原始图像:

图 1 图 2

4

2 回答 2

1

我看你解决了。使用您的代码时,我得到了同样奇怪的结果。所以我开始认为我并没有真正理解这些方法。

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

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

我把它放在github上,你可能想看看。

于 2012-12-27T04:22:22.440 回答
0

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

于 2012-12-25T12:10:40.393 回答