2011-01-18 1 views
1

У меня есть UIImageView, который пользователь может вращать и изменять размер, касаясь экрана. Я хочу применить те же изменения, которые пользователь внес в UIImageView к UIImage внутри него. Затем я буду использовать UIImage для маскировки другого изображения.Quartz 2D: как применить преобразование UIImageView в CGImage?

Пожалуйста, вы можете объяснить мне, что является правильной процедурой для этого?

Основная проблема заключается в том, что я не могу непосредственно применить Матрицу Аффинной Трансформации UIImageView к [UIImage CGImage], потому что они используют другую систему координат.

+0

ли даже можно превратить в 'CGImage' напрямую? Если вы говорите о преобразовании его при рисовании в 'CGContext', посмотрите документацию на' CGContextGetUserSpaceToDeviceSpaceTransform'. Вы можете применить преобразование, возвращаемое этой функцией, к преобразованию UIImageView. Затем примените полученное комбинированное преобразование к контексту, в котором вы рисуете свой образ. –

ответ

1

шагов вы должны принять являются:

  1. Создать новый графический контекст
  2. Применить преобразования из UIImageView в контекст
  3. Draw исходного изображения в контекст
  4. экстракта новое изображение из контекста

Вещи, на которые вы должны обратить внимание, - это перевернутая система координат a и тот факт, что ограничивающий прямоугольник вращающегося изображения теперь больше, чем первоначально был, и вы должны учитывать это при создании своего контекста.

Смотрите мой предыдущий пост: Creating a UIImage from a rotated UIImageView

Смежные вопросы