Как обрезать изображение до максимального прямоугольного изображения? - PullRequest
0 голосов
/ 12 июля 2010

В Mac OSX, У меня есть изображение с черным пикселем во всех 4 направлениях.

Я хочу программно обрезать изображение до максимального прямоугольного изображения.

Должен ли я проверить черный пиксель и затем создать прямоугольник кадрирования или есть какой-либо поддерживаемый API?

1 Ответ

1 голос
/ 12 июля 2010

Создайте NSI-изображение нужного размера, заблокируйте на нем фокус, нарисуйте желаемый прямоугольник кадрирования исходного изображения во все границы целевого изображения и разблокируйте фокус.Созданное вами изображение теперь содержит кадрирование из исходного изображения.

Обратите внимание, что при этом теряются такие данные, как разрешение (DPI), цветовой профиль и теги EXIF.Если вы хотите сохранить эти вещи (вероятно, хорошая идея), используйте CGImage:

  1. Используйте CGImageSource для загрузки изображения.Обязательно восстановите свойства каждого изображения из файла, а также сами изображения.И обратите внимание, что я использовал множественное число: файлы TIFF могут содержать несколько изображений.
  2. Используйте функцию CGImageCreateWithImageInRect , чтобы обрезать нужный фрагмент каждого изображения.Не забудьте выпустить каждое исходное изображение соответствующим образом.
  3. Если вы хотите записать обрезанные изображения в файл, сделайте это, используя CGImageDestination .Передайте изображения и словари атрибутов, полученные на шаге 1.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...