Я пытаюсь выяснить, существует ли какой-либо способ зеркально отразить изображение. Например, сделайте снимок чьей-то поверхности и затем сократите ее в половине и покажите то, на что их поверхность похожа с каждой зеркально отраженной стороной. Кажется, нет никаких приемов как это в функциях CGAffineTransform. Графические эксперты помогите!!!
Основной «трюк» здесь заключается в использовании преобразования масштабирования вокруг оси X или Y с коэффициентом -1. Например, вы можете использовать это для создания преобразования «переворот вокруг горизонтальной оси»:
CGAffineTransform transform = CGAffineTransformScale(transform, -1, 1);
Затем вы можете задать свойство transform
на UIImageView
для перелистывания назначенного изображения или объединить его с другим преобразованием для создания более сложных эффектов. Чтобы получить точный эффект, который вы описали, вам может потребоваться написать пользовательский код рисования, чтобы нарисовать исходное изображение в контексте, а затем наложить перевернутую половину поверх него. Это относительно просто в Core Graphics.
Если вы планируете поддерживать только 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];