我正在使用CIContext
方法- (void)drawImage:(CIImage *)im inRect:(CGRect)dest fromRect:(CGRect)src
将我的图片绘制到屏幕上。但我需要实现放大/缩小方法。我怎么能实现它?我认为可以通过增加dest
rect来实现放大,因为苹果文档说:
The image is scaled to fill the destination rectangle.
但是缩小呢?因为如果缩小dest
矩形,则以图像的实际大小绘制图像,但只有部分图像可见(适合dest
矩形的部分)。
你有什么建议吗?
答案 0 :(得分:0)
您可以尝试使用this进行图像调整大小(缩放)。希望这会对你有所帮助。
答案 1 :(得分:0)
您可以在绘图前使用CIFilter调整CIImage的大小。 Quartz Composer附带了一个使用此过滤器的好例子。只需在QC中查找Image Resize过滤器的描述。
修改强> 另一个很好的缩放过滤器是CILanczosScaleTransform。有一个snippet演示了基本用法。
答案 2 :(得分:0)
看看这个小toy app I made
演示CIContext方法的NSImage版本:
- (void)drawInRect:(NSRect)dstRect
fromRect:(NSRect)srcRect
operation:(NSCompositingOperation)op
fraction:(CGFloat)delta
我这样做是为了确切知道这些行为是如何相互关联的。它是交互式的,您可以使用滑块播放并移动/缩放图像。不是解决方案,但它可以帮助您解决问题。