好的,这就是我要做的事情:
NSImage
包含,让我们说一张照片(1000 + x 1000+尺寸)。NSImage
只包含一个透明背景和一个简单的黑色边框(500x500)。这是我到目前为止所取得的成就:
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,[self drop2]
是包含边框的ImageWell。
事情就是它正在发挥作用。然而,结果图像显然是一个“拉伸”的边界。
我怎么解决这个问题?鉴于原始照片应该具有任何尺寸,我怎样才能使用边框(某些固定尺寸)并仍然避免拉伸?
答案 0 :(得分:1)
如何直接使用CALayer
进行边框处理,例如:
#import <QuartzCore/QuartzCore.h>
CALayer *layer = imageView.layer;
layer.borderColor = [[NSColor blackColor] CGColor];
layer.borderWidth = 10;
答案 1 :(得分:1)
我会这样做。只需根据需要调整图像大小,然后添加边框。您可以通过使用黑色背景的简单视图或合适的图像(假设您希望具有可自定义的图像边框,如框架)来执行此操作,其大小始终保持生成的边框不变。然后,如果需要,您可以从该视图生成新图像。