1

OK、これが私がやろうとしていることです:

  • NSImage写真 (1000+ x 1000+ 寸法) としましょう。
  • NSImage透明な背景と単純な黒い境界線 (500x500) だけを含む別のものを入手してください。
  • 2 つの画像を「結合」して、結果の画像が縁取り付きの写真になるようにします。

これは私がこれまでに達成したことです:

NSImage* resultImage = [[[self drop] image] copy];
[resultImage lockFocus];

NSRect newRect = NSMakeRect(0, 0, [[[self drop] image] size].width, [[[self drop] image] size].height);

[[[self drop2] image] drawInRect:newRect  
                        fromRect:NSZeroRect 
                       operation:NSCompositeSourceOver 
                        fraction:1.0];

[resultImage unlockFocus];

[[self drop] setImage:resultImage];

[self drop]写真を含む ImageWell と境界線を含む ImageWell はどこにありますか[self drop2]

問題は、それが機能しているということです。ただし、結果として得られる画像は、明らかに「引き伸ばされた」境界線を示しています。

枠付き画像

どうすればそれを解決できますか? 元の写真が任意の寸法でなければならないことを考えると、(いくつかの固定寸法の) 境界線を使用して引き伸ばさないようにするにはどうすればよいでしょうか?

4

2 に答える 2

1

で境界線を直接行うのはどうですかCALayer、例えば:

#import <QuartzCore/QuartzCore.h>

CALayer *layer = imageView.layer;
layer.borderColor = [[NSColor blackColor] CGColor];
layer.borderWidth = 10;
于 2012-11-02T14:18:24.010 に答える
1

私はこれを別の方法で行います。必要に応じて画像のサイズを変更し、境界線を追加します。これを行うには、背景が黒の単純なビュー、または適切な画像 (フレームなどのカスタマイズ可能な画像の境界線が必要な場合) を作成し、結果の境界線を常に一定に保つようにサイズを設定します。その後、必要に応じて、そのビューから新しい画像を生成できます。

于 2012-11-02T14:18:59.340 に答える