Отразить CIImage по горизонтали

Я пытаюсь перевернуть свой CIImage Horizontal с помощью:

image = [image imageByApplyingTransform:CGAffineTransformMakeScale(1, -1)];
image = [image imageByApplyingTransform:CGAffineTransformMakeTranslation(0, sourceExtent.size.height)];

Но вместо этого я всегда переворачиваю изображение по вертикали.


person YosiFZ    schedule 01.05.2016    source источник
comment
почему бы вам не попробовать этот UIImage * flippedImage = [UIImage imageWithCGImage: imgV.image.CGImage масштаб: imgV.image.scale ориентация: UIImageOrientationUpMirrored];   -  person Teja Nandamuri    schedule 01.05.2016


Ответы (4)


Попробуйте так:

image = [image imageByApplyingTransform:CGAffineTransformMakeScale(-1, 1)];
image = [image imageByApplyingTransform:CGAffineTransformMakeTranslation(0, sourceExtent.size.height)];
person Alex Kosyakov    schedule 01.05.2016

Это правильно перевернет изображение по горизонтали и сохранит правильные координаты.

В объект-C:

image = [image imageByApplyingCGOrientation: kCGImagePropertyOrientationUpMirrored];

В Свифте:

image = image.oriented(.upMirrored)

https://developer.apple.com/documentation/coreimage/ciimage/2919727-ориентированный

Если вы хотите сориентировать его таким образом, чтобы вы могли использовать его в UIImage, тогда вы хотите перевернуть его по обеим осям.

image = image.oriented(.downMirrored)
person Luis    schedule 02.01.2018
comment
Я получаю сообщение об ошибке «ориентация» доступна только в iOS 11.0 или новее. - person Chewie The Chorkie; 12.02.2018
comment
image.orient(.upMirrored) работает только для iOS 11+, как я могу реализовать его под iOS 11? - person allenlinli; 17.06.2020

У Алекса почти получилось, но нужно еще и перевод подкорректировать:

image = [image imageByApplyingTransform:CGAffineTransformMakeScale(-1, 1)];
image = [image imageByApplyingTransform:CGAffineTransformMakeTranslation(sourceExtent.size.width, 0)];
person Kai Schaller    schedule 13.10.2016

Это то, что сработало для меня:

UIImage(ciImage: ciImage.oriented(.upMirrored).oriented(.left))
person Rotem    schedule 08.05.2019