Como inverter UIImage
horizontalmente, encontrei o UIImageOrientationUpMirrored
valor de enumeração na UIImage
referência de classe, como usar essa propriedade para inverter UIImage
.
ios
uiimage
uiimageorientation
pradeepa
fonte
fonte
Respostas:
Objective-C
Rápido
fonte
UIImageOrientationUp
funcionou enquantoUIImageOrientationUpMirrored
não girava . Isso funcionou -image = [UIImage imageWithCGImage:image.CGImage scale:image.scale orientation:UIImageOrientationUp]
sourceImage.scale
para a escala.[flippedImage imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]
. Alguma ideia do porquê?Uma maneira muito simples de conseguir isso é criando um UIImageView em vez de um UIImage e fazer a transformação em UIImageView.
Espero que isto ajude.
fonte
UIImage
manipulação, que descobri que tinha efeitos colaterais quando combinada com oUIImageRenderingModeAlwaysTemplate
modo de renderização.yourImageView.transform = CGAffineTransformIdentity
A inversão vertical geralmente é necessária para inicializar a textura OpenGL usando
glTexImage2d(...)
. Os truques propostos acima não modificam os dados da imagem e não funcionarão neste caso. Aqui está um código para fazer a inversão de dados real inspirado em https://stackoverflow.com/a/17909372fonte
Eu tentei com imageFlippedForRightToLeftLayoutDirection e criei um novo UIImage com orientações diferentes, mas pelo menos esta é a única solução que encontrei para inverter minha imagem
Como vocês podem ver no meu playground funcionou !! :)
E, é claro, vamos finalImage = UIImage (CIImage: rotada3)
fonte
Como a orientação da imagem define:
Fiz algumas melhorias para mais circunstâncias, como lidar com UIImage de AVCaptureSession.
fonte
aqui está a versão rápida: (eu vi essa pergunta nos comentários)
fonte
iOS 10+
Swift 4:
fonte
Esta é uma implementação sólida para espelhar / virar um UIImage horizontalmente e pode ser aplicada à imagem para frente e para trás. Uma vez que altera os dados da imagem subjacente, o desenho (como captura de tela) também será alterado. Testado para funcionar, sem perda de qualidade.
fonte
Pode ser que isso seja útil para alguns:
fonte
Para Swift 3/4:
fonte
Uma extensão simples.
Uso:
fonte
Esta é uma versão funcional compatível com iOS8 / 9:
fonte
imageFlippedForRightToLeftLayoutDirection
deve ser usado com instruções de layout invertidas - por exemplo, para países árabes. Portanto, usar isso pode nem sempre funcionar como desejado.Testado em Swift 3 e superior
Aqui está a solução simples para resolver esse problema com extensões. Eu testei e funcionou. Você pode espelhar em qualquer direção.
Uso para este código
Assim por diante, você pode usar outras funções.
fonte
Aqui está uma das respostas acima modificadas e no Swift 3 que achei particularmente útil quando você tem um botão que precisa ficar virando a imagem para frente e para trás.
Usar:
fonte
A resposta de Aroth em SWIFT 3:
fonte
Swift 4
fonte
Devido ao desembrulhar, faça o seguinte:
fonte
você pode girar a imagem como quiser usando este
SWIFT 4
}
fonte
Swift 5 - Xcode 11.5
A melhor solução para rotação horizontal: Assista a este vídeo:
https://m.youtube.com/watch?v=4kSLbuB-MlU
Ou use este código:
Você pode usar qualquer ui (botão ou rótulo ou uiview ou imagem) nesta animação.
fonte