Cara membalikkan UIImage
secara horizontal, saya menemukan UIImageOrientationUpMirrored
nilai pencacahan di UIImage
referensi kelas, bagaimana menggunakan properti ini untuk membalik UIImage
.
ios
uiimage
uiimageorientation
pradeepa
sumber
sumber
Jawaban:
Objective-C
Cepat
sumber
UIImageOrientationUp
berhasil sementaraUIImageOrientationUpMirrored
tidak membaliknya. Ini berhasil -image = [UIImage imageWithCGImage:image.CGImage scale:image.scale orientation:UIImageOrientationUp]
sourceImage.scale
untuk skala.[flippedImage imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]
. Tahu kenapa?Cara yang sangat sederhana untuk mencapainya adalah dengan membuat UIImageView sebagai ganti UIImage dan melakukan transformasi pada UIImageView.
Semoga ini membantu.
sumber
UIImage
manipulasi, yang menurut saya memiliki efek samping saat dikombinasikan denganUIImageRenderingModeAlwaysTemplate
mode rendering.yourImageView.transform = CGAffineTransformIdentity
Flip vertikal sering kali diperlukan untuk menginisialisasi tekstur OpenGL menggunakan
glTexImage2d(...)
. Trik yang diusulkan di atas tidak benar-benar mengubah data gambar dan tidak akan berfungsi dalam kasus ini. Berikut adalah kode untuk melakukan flip data aktual yang terinspirasi oleh https://stackoverflow.com/a/17909372sumber
Saya telah mencoba dengan imageFlippedForRightToLeftLayoutDirection, dan membuat UIImage baru dengan orientasi yang berbeda tetapi setidaknya ini adalah satu-satunya solusi yang saya temukan untuk membalik gambar saya
Seperti yang Anda lihat di taman bermain saya, itu berhasil !! :)
Dan, tentu saja, biarkan finalImage = UIImage (CIImage: rotada3)
sumber
Seperti yang didefinisikan oleh Orientasi Gambar:
Saya membuat beberapa perbaikan untuk lebih banyak keadaan seperti menangani UIImage dari AVCaptureSession.
sumber
inilah versi cepat: (Saya melihat pertanyaan ini di komentar)
sumber
iOS 10+
Cepat 4:
sumber
Ini adalah implementasi yang solid untuk mencerminkan / membalik gambar UII secara horizontal, dan dapat diterapkan ke gambar bolak-balik. Karena itu mengubah data gambar yang mendasarinya, gambar (seperti, tangkapan layar) juga akan berubah. Teruji bekerja, tidak ada penurunan kualitas.
sumber
Mungkin ini akan berguna untuk beberapa:
sumber
Untuk Swift 3/4:
sumber
Perpanjangan sederhana.
Pemakaian:
sumber
Ini adalah versi yang kompatibel dengan iOS8 / 9:
sumber
imageFlippedForRightToLeftLayoutDirection
dimaksudkan untuk digunakan dengan arah tata letak terbalik - misalnya untuk negara-negara arab. Jadi menggunakan ini mungkin tidak selalu berfungsi seperti yang diinginkan.Diuji di Swift 3 ke atas
Berikut adalah solusi sederhana untuk mengatasi masalah ini dengan ekstensi. Saya mengujinya dan berhasil. Anda bisa bercermin ke segala arah.
Penggunaan untuk kode ini
Jadi, Anda dapat menggunakan fungsi lain.
sumber
Inilah salah satu jawaban di atas yang dimodifikasi dan di Swift 3 yang menurut saya sangat berguna ketika Anda memiliki tombol yang perlu terus membalik gambar bolak-balik.
Menggunakan:
sumber
jawaban aroth di SWIFT 3:
sumber
Cepat 4
sumber
Karena pembongkaran lakukan hal berikut:
sumber
Anda dapat memutar gambar sesuai keinginan menggunakan ini
SWIFT 4
}
sumber
Swift 5 - Xcode 11.5
Solusi terbaik untuk memutar secara horizontal: Tonton video ini:
https://m.youtube.com/watch?v=4kSLbuB-MlU
Atau gunakan kode ini:
Anda dapat menggunakan ui (tombol atau label atau tampilan atau gambar) apa pun dalam animasi ini.
sumber