cp .env.example .env
php artisan key:generate
php artisan storage:link
php artisan serve
Proyek ini menyediakan dua metode untuk mengakses dan mengunggah gambar dari kamera pada perangkat mobile atau desktop menggunakan HTML dan JavaScript:
- Input File Kamera (Capture dari Browser)
- HTML5 Camera API (Menggunakan
getUserMedia()
)
Dengan dua metode ini, pengguna dapat memilih cara yang paling sesuai untuk mengambil gambar, baik melalui input file yang sederhana atau dengan fitur canggih dari HTML5 Camera API untuk tampilan video langsung dan pengaturan kamera.
HTML menyediakan input tipe file dengan atribut capture="camera"
untuk membuka kamera pada perangkat mobile. Fitur ini bekerja sebagai berikut:
- Ambil Gambar: Ketika pengguna mengklik tombol Ambil Gambar, fungsi
openCamera()
akan membuka kamera atau galeri perangkat. - Pratinjau Gambar: Setelah gambar diambil, event
change
pada elemen input membaca file gambar dan menggunakanFileReader
untuk menampilkan pratinjau gambar di halaman. - Kelebihan: Sederhana dan didukung secara luas di berbagai perangkat dan browser.
HTML5 Camera API menggunakan navigator.mediaDevices.getUserMedia()
untuk mengakses kamera perangkat secara langsung. Fitur ini memberikan lebih banyak fleksibilitas, termasuk:
- Live Preview: Stream video langsung dari kamera ditampilkan dalam elemen
<video>
. - Ambil Snapshot: Fungsi
take_snapshot_getUserMedia()
memungkinkan pengguna untuk mengambil gambar dari video live.- Mengatur resolusi canvas dengan lebar maksimum 720 piksel.
- Mengonversi gambar dari video menjadi data gambar berbentuk base64.
- Menyimpan data base64 dalam elemen
<input type="hidden">
untuk keperluan pengunggahan ke server.
- Ganti Kamera: Fungsi
toggleCamera()
memungkinkan pengguna beralih antara kamera depan dan belakang dengan mengubah propertifacingMode
.
- Mengakses Kamera:
- Menggunakan
navigator.mediaDevices.getUserMedia()
untuk meminta izin akses kamera. - Properti
facingMode
pada opsi video digunakan untuk memilih kamera depan (user
) atau belakang (environment
).
- Menggunakan
- Pengambilan Gambar (Snapshot):
- Dengan menggunakan elemen
canvas
, gambar dapat diambil dari video stream dan diubah menjadi format base64, memungkinkan untuk disimpan atau diunggah ke server.
- Dengan menggunakan elemen
- Browser yang mendukung HTML5 dan
getUserMedia
API. - Perangkat dengan kamera untuk mencoba fitur-fitur ini.
Tidak diperlukan instalasi tambahan. Cukup buka file HTML di browser untuk mencoba fitur-fitur ini.
-
Metode Input File Kamera:
- Klik tombol Ambil Gambar untuk membuka kamera atau galeri.
- Pilih atau ambil gambar, dan gambar akan ditampilkan sebagai pratinjau.
-
Metode HTML5 Camera API:
- Klik Buka Kamera untuk mengaktifkan video live dari kamera.
- Gunakan Ambil Snapshot untuk mengambil gambar dari stream video.
- Klik Ganti Kamera untuk beralih antara kamera depan dan belakang (hanya pada perangkat yang mendukung fitur ini).
- Metode Input File Kamera mungkin lebih kompatibel di berbagai perangkat mobile, sedangkan HTML5 Camera API lebih fleksibel namun membutuhkan izin khusus dari pengguna.
- Untuk keamanan, pastikan perangkat memiliki izin akses kamera diaktifkan untuk browser.
HTML5 Camera API (getUserMedia()
) didukung pada sebagian besar browser modern seperti Chrome, Firefox, dan Edge. Namun, dukungan di perangkat iOS dan Safari mungkin terbatas atau membutuhkan versi terbaru.
The Laravel framework is open-sourced software licensed under the MIT license.