Balik & putar gambar

Putar foto kelipatan 90°, cerminkan secara horizontal atau vertikal, dan proses banyak berkas ke PNG, JPEG, atau WebP dengan ukuran langsung.

Pemutaran dan pembalikan terjadi secara lokal di browser Anda. Gambar Anda tidak pernah meninggalkan perangkat.

Balik dan putar sekaligus

Letakkan gambar di sini

PNG, JPEG, WebP, atau GIF — tambahkan sebanyak yang Anda mau. Klik untuk memilih.

Cara kerja

Setiap gambar didekode sekali menjadi elemen Image. Tiap baris menyimpan status kecil — hitungan seperempat putaran plus dua penanda pembalikan — dan tombol mengubahnya di tempat, sehingga Anda bisa menumpuk operasi (kanan, kanan, balik-H) sambil pembacaan W × H diperbarui seketika. Unduhan memproses status itu lewat satu kali render canvas.

Matematika transformasinya
Untuk putaran r derajat dengan keluaran ow × oh, urutan canvas-nya adalah translate(ow/2, oh/2), rotate(r), scale(±1, ±1), lalu drawImage(img, −w/2, −h/2). Karena titik asal berada di tengah canvas, offset setengah lebar/setengah tinggi itu membingkai persegi panjang yang diputar dengan sempurna pada 90°, 180°, dan 270°.
Mengapa W × H bertukar
Pada 90° dan 270° sisi panjang menjadi vertikal, jadi canvas keluaran dibangun dengan lebar = tinggi sumber dan tinggi = lebar sumber. Lencana di tiap baris menghitungnya ulang seketika — itu pula sebabnya tangkapan layar landscape menjadi portrait tanpa pemotongan.
Operasi inkremental pada sumbu layar
Setelah jumlah seperempat putaran yang ganjil, sumbu horizontal berkas justru menjadi vertikal di layar. Maka klik Horizontal mengganti penanda vertikal saat rotasi 90°/270° — "Horizontal" selalu menggambarkan arah yang Anda lihat, bukan yang tersimpan, dan kombinasi apa pun dari keempat tombol berakhir pada salah satu dari delapan simetri persegi panjang.

Pertanyaan yang sering diajukan

Apakah putaran 90° tanpa kehilangan?

Dari sisi pixel, ya — setiap pixel sumber disalin ke posisi barunya tanpa pemotongan atau resampling, jadi geometrinya persis. Catatan jujurnya ada di encoding: ekspor apa pun (PNG, JPEG, WebP) adalah encode ulang, dan JPEG/WebP juga mengkuantisasi sesuai kualitas pilihan. Memutar JPEG terkompresi ke PNG jadi sempurna secara pixel tetapi lebih besar; JPEG→JPEG pada kualitas tinggi adalah generasi lossy kedua — jarang terlihat, tetapi memang terjadi.

Bisakah memutar dengan sudut bebas?

Tidak — hanya kelipatan 90°. Sudut bebas menuntut setiap pixel di-resampling ke kisi baru dan mengisi celah di sudut, yang melembutkan gambar. Empat putaran siku persis yang dibutuhkan sensor ponsel, formulir, dan hasil pindai, dan ukurannya tetap bilangan pixel utuh.

Apakah pembalikan tersusun benar dengan pemutaran?

Ya. Setiap tombol diterapkan bertahap pada status saat ini, dan pembalikan horizontal/vertikal ditafsirkan pada layar — setelah putaran 90°, tombol Horizontal membalik sepanjang arah yang kini Anda lihat mendatar, sesuai harapan penonton, bukan sumbu internal berkas.

Berapa gambar yang bisa diproses sekaligus?

Tidak ada batas kaku, tetapi semuanya didekode di memori. Selusin foto ponsel biasa aman; seratus berkas 48 megapiksel bisa menghabiskan memori tab browser. Unduh tiap hasil yang Anda perlu, pakai Hapus pada baris selesai, dan ZIP disusun saat Anda mengkliknya.

Apakah ada yang diunggah ke server?

Tidak. Dekode, matematika transformasi canvas, encode ulang, dan penyusunan ZIP semuanya berjalan di perangkat Anda. Satu-satunya ketergantungan jaringan adalah pustaka JSZip dari CDN — jika tidak tersedia (offline atau diblokir), alat ini mengatakannya dan unduhan per berkas tetap jalan.