создать новое изображение только с замаскированной частью (без прозрачной области) с новым размером - PullRequest
0 голосов
/ 12 января 2012

У меня есть маска и изображение, к которому применяется маска, чтобы получить часть этого изображения.Проблема заключается в том, что когда я применяю эту маску к изображению, результирующее изображение от маскирования имеет тот же размер, что и исходное изображение. Хотя немаскированная часть является прозрачной.Мне нужно изображение, которое имеет только маскированную часть исходного изображения, я не хочу, чтобы прозрачная часть была на изображении.так что результирующее изображение будет иметь меньший размер и содержать только замаскированную часть.

Спасибо

1 Ответ

0 голосов
/ 12 января 2012

Вы можете:

  1. Рисовать изображение на новом CGBitmapContext в реальном размере, предоставляя буфер для растрового изображения.CGBitmapContextCreate
  2. Считайте альфа-значения из растрового изображения, чтобы определить прозрачные границы.Вам нужно будет определить, как читать это, основываясь на данных пикселов, которые вы указали.
  3. Создайте новый CGBitmapContext, предоставляющий внешний буфер, используя некоторое изменение или комбинацию: a) смещения пикселя, b)смещение байтов на строку или c) вручную переместить данные растрового изображения (на место, чтобы уменьшить использование памяти, если это возможно).CGBitmapContextCreate
  4. Создать CGImage из второго контекста растрового изображения.CGBitmapContextCreateImage
...