Как я зеркально отражаю изображение UIImage от UIImagePickerController

Я пытаюсь выяснить, существует ли какой-либо способ зеркально отразить изображение. Например, сделайте снимок чьей-то поверхности и затем сократите ее в половине и покажите то, на что их поверхность похожа с каждой зеркально отраженной стороной. Кажется, нет никаких приемов как это в функциях CGAffineTransform. Графические эксперты помогите!!!

17
задан Terry 27 June 2010 в 23:24
поделиться

2 ответа

Основной «трюк» здесь заключается в использовании преобразования масштабирования вокруг оси X или Y с коэффициентом -1. Например, вы можете использовать это для создания преобразования «переворот вокруг горизонтальной оси»:

CGAffineTransform transform = CGAffineTransformScale(transform, -1, 1);

Затем вы можете задать свойство transform на UIImageView для перелистывания назначенного изображения или объединить его с другим преобразованием для создания более сложных эффектов. Чтобы получить точный эффект, который вы описали, вам может потребоваться написать пользовательский код рисования, чтобы нарисовать исходное изображение в контексте, а затем наложить перевернутую половину поверх него. Это относительно просто в Core Graphics.

39
ответ дан 30 November 2019 в 10:04
поделиться

Если вы планируете поддерживать только 4.0+

UIImageOrientation flippedOrientation = UIImageOrientationUpMirrored;
switch (image.imageOrientation) {
  case UIImageOrientationUp: break;
  case UIImageOrientationDown: flippedOrientation = UIImageOrientationDownMirrored; break;
  // ...
}
UIImage * flippedImage = [UIImage imageWithCGImage:image.CGImage scale:image.scale orientation:flippedOrientation];
19
ответ дан 30 November 2019 в 10:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: