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 画像になります) が、2 つの別々の画像が小さすぎるため、結果の画像はほとんど空白になります。

スクリーンショット

元の画像は次のとおりです。

画像1 画像2

4

2 に答える 2

1

私はあなたがそれを解決したのを見ます。あなたのコードを使用すると、同様に奇妙な結果が得られました。それで、私はこれらの方法を本当に理解していないと思い始めました。

私は通常常に を使用 -drawInRect:fromRect:operation:fractionします。2 つの四角形が結果にどのように影響するかは 100% ではありませんでしたが、常に必要な結果が得られました。

とにかく、私は離れて、四角形をインタラクティブに変更する効果を示す小さなおもちゃアプリを作成しました(問題に従って2つの画像を使用)。

github にアップしましたので、よろしければご覧ください。

于 2012-12-27T04:22:22.440 に答える
0

コメントで言ったように、使用-drawInRect:fromRect:operation:fractionすると問題が解決しました!

于 2012-12-25T12:10:40.393 に答える