如何将图像裁剪为最大图像rect?

时间:2010-07-12 05:07:57

标签: cocoa image macos

在Mac OSX中, 我的所有4个方向都有一个黑色像素的图像。

我想以编程方式将图像裁剪为最大图像矩形。

我应该检查黑色像素然后创建裁剪矩形还是有任何支持的API?

1 个答案:

答案 0 :(得分:1)

创建所需大小的NSImage,锁定焦点,将源图像的所需裁剪矩形绘制到目标图像的整个边界,并解锁焦点。您现在创建的图像包含源图像中的裁剪。

请注意,这将丢失分辨率(DPI),颜色配置文件和EXIF标记等信息。如果你想保留这些东西(可能是个好主意),请使用CGImage:

  1. 使用CGImageSource加载图片。请务必从文件中恢复每个图像的属性,以及图像本身。请注意,我使用了复数形式:TIFF文件可以包含多个图像。
  2. 使用the CGImageCreateWithImageInRect function裁剪出每张图片的所需部分。不要忘记适当地发布每张原始图像。
  3. 如果要将裁剪后的图像写入文件,请使用CGImageDestination执行此操作。传递您在步骤1中获得的图像和属性词典。