Halaman ini ditampilkan dalam bahasa Indonesia, bahasa yang diminta peramban Anda.
Kode halaman ini tidak berjalan.
Membuka index.html langsung dari sebuah folder memblokir modul JavaScript, sehingga tidak akan terjadi apa-apa saat Anda memilih sebuah foto halaman. Sajikan folder tersebut lewat http sebagai gantinya:
Terbuka begitu Anda memilih berkas di atas.siap — putuskan koneksi internet dan ini akan tetap berfungsi.tidak tersedia di peramban ini (semua yang lain tetap berfungsi).membutuhkan https:// atau localhost untuk menyimpan cache demi penggunaan luring.penyimpanan cache tidak tersedia di sini, tetapi tidak ada yang diunggah dengan cara apa pun.file Anda tidak pergi ke mana pun. {total} file dimuat, semuanya milik halaman ini sendiri. {platform}sesuatu menghubungi {hosts}, dan itu tidak pernah dilakukan alat ini. Anggap itu layak diselidiki. {platform}Skrip iklan, pengukuran, dan tombol donasi milik halaman ini dimuat dari {hosts} host; tidak satu pun diberi sebuah file atau satu byte darinya.Skrip iklan, pengukuran, dan tombol donasi milik halaman ini dimuat dari {hosts} host; tidak satu pun diberi sebuah file atau satu byte darinya.Ada yang tidak berjalan dengan benar: {detail}. Muat ulang halaman untuk memulai dari awal.Membaca {count} file…Membaca {count} file…Coba sebuah contohMembuat contoh…Peramban ini tidak dapat membuat contoh. Silakan pilih berkas saja.
Pemindai Dokumen — foto sebuah halaman, diluruskan
Foto halamannya. Dapatkan sesuatu yang tampak seperti hasil pindaian.
● dokumen Anda tidak pernah diunggah. Tidak ada server.
Fotonya didekodekan, diluruskan, dibersihkan, dan ditulis ke dalam sebuah PDF oleh peramban Anda sendiri, tanpa apa pun selain hitungan dan kodek yang memang sudah dibawanya. Alat ini tidak punya fitur jaringan dalam bentuk apa pun — tidak ada yang diambil, tidak ada yang dikirim — dan alasan hal itu penting di sini adalah apa yang biasa difoto orang halamannya: paspor, slip gaji, surat sewa, formulir yang diminta sebuah kantor untuk “dipindai dan dikembalikan”.
✗ Tanpa unggah
✗ Tanpa akun
✗ Tanpa tanda air
✓ Jalan tanpa internet
✓ Sumber terbuka
Pemeriksaan langsung:memeriksa…
Luring:memeriksa…
Tidak perlu percaya begitu saja: buka DevTools, perhatikan tab Network, lalu pindai sebuah halaman. Tidak satu pun permintaan membawa sebuah foto, gambar mini, nama file, atau posisi satu sudut pun. Atau cabut koneksi internet dan tetap pindai satu.
Cara memverifikasi klaim privasi ini
Dokumen Anda tidak punya tujuan ke mana pun. Content-Security-Policy menyebut satu per satu setiap alamat yang boleh dihubungi halaman ini, dan tidak satu pun milik situs ini. Tidak ada titik akhir di sini tempat foto Anda bisa dikumpulkan, dan tidak ada kode yang akan mengirimnya seandainya ada.
Tidak ada model, jadi tidak ada yang perlu diunduh dan tidak ada yang perlu ditanyakan. Menemukan keempat sudut sebuah halaman dilakukan dengan hitungan: gradien gambarnya, sebuah pemungutan suara untuk garis lurus di dalamnya, dan sebuah pemeriksaan atas apa yang sebenarnya ada di bawah setiap sisi persegi panjang yang menang. Tanpa bobot, tanpa runtime inferensi, tanpa apa pun yang diambil saat pemakaian pertama, dan tanpa apa pun yang berperilaku berbeda pada dokumen orang lain dibanding pada dokumen Anda — lihat src/detect.js.
Dokumennya tidak membawa tanggal, penulis, atau nama mesin. Pindaian adalah sesuatu yang dikirim orang kepada orang lain, biasanya karena sebuah kantor memintanya. Satu-satunya yang ditulis ke dalam PDF-nya selain halamannya sendiri adalah nama alat ini, dan sebuah judul kalau Anda mengetiknya. Tidak ada tanggal pembuatan, tidak ada penulis, tidak ada nomor seri, dan tidak ada apa pun yang diturunkan dari jam Anda, nama file Anda, atau komputer Anda — lihat src/document.js.
Tidak ada di sini yang mengambil apa pun. Tidak ada fetch, tidak ada XMLHttpRequest, dan tidak ada sendBeacon di mana pun di dalam src/. Pekerjaannya adalah getImageData, beberapa perulangan atas byte-nya, dan pengode JPEG milik peramban sendiri — semuanya sudah terpasang di mesin Anda.
Jalan tanpa internet. Putuskan koneksi jaringan dan alat ini tidak berubah, karena sejak awal memang tidak ada langkah jaringan di dalamnya. Itulah bukti yang paling sederhana — dan yang layak dijalankan sebelum Anda memindai sebuah paspor.
Periksa sendiri. Anda tidak perlu memercayai semua ini begitu saja. Halaman ini dihasilkan dari templat dan konfigurasi di repositori oleh skrip build yang bisa Anda baca dan jalankan sendiri, dan hasilnya dikirim ke cabang dist — jadi Anda bisa membandingkan apa yang disajikan dengan apa yang dihasilkan oleh build dari kode sumbernya:
File yang layak dibaca lebih dulu adalah config/site.toml untuk Content-Security-Policy, src/detect.js untuk cara sudutnya ditemukan tanpa model apa pun, src/warp.js untuk pelurusannya, dan src/clean.js untuk cara cahaya yang tidak rata dibagi keluar.
Jika perangkat lunak keamanan kantor Anda memperingatkan soal unggahan. Ia mengawasi saat sebuah berkas dipilih di peramban, dan tidak bisa tahu apakah halaman ini berniat mengirimnya — jadi ia memperingatkan saat pemilihan. Tidak ada yang dikirim dari sini: buka alat pengembang peramban, pindah ke Network, lalu pilih sebuah berkas. Tidak ada permintaan yang membawanya, dan tidak ada permintaan sama sekali selain pratinjau lokal halaman ini. Pemeriksaan yang sama bisa dilakukan tim TI Anda dalam setengah menit.
1 Pilih fotonya
Sebuah foto tiap halaman, diambil dari mana pun di atasnya. Seluruh halamannya harus ada di dalam bingkai, dan keempat sudutnya sebaiknya terlihat atau hampir terlihat — selebihnya, sudutnya, bayangannya, meja tempatnya terbaring, itulah yang menjadi tugas alat ini. Tambahkan beberapa dan mereka menjadi halaman-halaman satu dokumen, dalam urutan Anda menambahkannya.
2 Taruh sudutnya di halamannya
Tekan di mana pun pada fotonya dan sudut terdekat datang ke jari Anda; seret ke sudut halamannya. Tab menjangkau sebuah sudut dari papan ketik, tombol panah memindahkannya satu piksel dan Shift bersamanya sepuluh. Tidak ada di sini yang final — pindaiannya diambil dari di mana pun keempat sudutnya berakhir.
Pilih sebuah foto dan ia muncul di sini, dengan keempat sudutnya dicarikan untuk Anda.
3 Bersihkan
Yang di bawah adalah hasil sebenarnya, dihasilkan oleh kode yang sama yang menulis file-nya — sudah lurus, dan dengan cahaya yang tidak rata sudah dibagi keluar. Ia digambar seukuran layar selagi Anda memilih; file-nya sendiri dibuat pada resolusi fotonya.
Warna, diratakan Kertasnya diukur di seluruh halaman lalu dibagi keluar, sehingga bayangannya hilang dan kertasnya kembali putih, sementara sebuah stempel, tanda tangan bertinta biru, atau baris yang distabilo tetap berwarna seperti semula. Inilah yang dipakai ketika warnanya bagian dari dokumennya.
Skala abu-abu Perataan yang sama, tanpa warnanya. Lebih kecil daripada warna dan lebih murah hati kepada sebuah foto atau tanda tangan daripada hitam putih.
Hitam putih Setiap piksel diputuskan terhadap sekelilingnya sendiri alih-alih terhadap satu angka untuk seluruh halaman, dan itulah yang menjaga tulisan di dalam bayangan tetap terbaca. Inilah yang membuat sebuah pindaian kecil: kontrak dua puluh halaman keluar di bawah satu megabita dengan cara ini dan di sekitar lima belas sebagai foto. Ia tidak punya nada tengah, jadi apa pun yang ada fotonya sebaiknya tidak memakainya.
Biarkan saja Diluruskan dan tidak lebih. Untuk halaman yang kertasnya sendiri penting — sesuatu yang tua, sesuatu yang berwarna, sebuah foto.
Halaman yang sudah lurus muncul di sini begitu ada foto untuk diluruskan.
Meluruskan…
Setelannya berlaku untuk setiap halaman. Halaman dalam satu dokumen yang dibersihkan secara berbeda tampak seperti dua dokumen.
4 Simpan dokumennya
PDF-nya ditulis di sini, di dalam memori halaman ini, satu halaman sekali jalan. Tidak ada server di ujung lain alat ini untuk menerima slip gaji, paspor, atau kontrak, dan tidak ada kode yang akan mengirimnya seandainya ada.
Resolusi cetak Seberapa besar selembar kertas yang disebut oleh sejumlah piksel tertentu. Ia mengubah ukuran cetak dokumennya, dan tidak satu piksel pun dari pindaiannya.
Sisi terpanjang Sebuah langit-langit untuk halaman yang sudah lurus. Foto sebuah halaman menyimpan jauh lebih banyak piksel daripada yang pantas bagi halamannya, dan 2400 di sisi panjangnya kira-kira 200 DPI di atas A4.
Kualitas Untuk mode warna dan skala abu-abu, yang disimpan sebagai JPEG. Halaman hitam putih disimpan dengan tepat, jadi ini tidak berpengaruh padanya.
Judul dokumen (opsional) Satu-satunya yang ditulis ke dalam dokumennya selain halamannya. Tidak ada tanggal, tidak ada penulis, dan tidak ada apa pun tentang mesin ini — lihat src/document.js.
Buka sebelum Anda mengirimnya. Yang ada di dokumennya adalah yang ada di layar pada langkah 3, halaman demi halaman.
Tidak ada halaman untuk ditulis.Browser ini tidak punya CompressionStream, yang dibutuhkan mode hitam putih untuk memampatkan halaman. Pilih salah satu mode yang lain.Browser ini tidak bisa mengodekan halamannya sebagai JPEG.Browser ini tidak bisa mengodekan halamannya.Keempat sudut itu tidak membentuk sebuah halaman.Keempat sudutnya ditemukan. Periksa, dan seret yang mendarat keliru.Tepi halamannya tidak cukup jelas untuk diyakini. Sudut-sudut ini sebuah tebakan — seret ke halamannya sebelum Anda lanjut.Tidak ada halaman yang bisa dikenali dari foto ini, jadi sudutnya berada di tepi fotonya. Seret ke halamannya.Tidak ada yang bisa ditemukan di gambar ini — ia sama sekali tidak punya tepi di dalamnya.Gambar ini terlalu kecil untuk menemukan sebuah halaman di dalamnya.Sudut-sudut ini sekarang milik Anda. “Cari sudutnya lagi” mengukur fotonya dari awal.Sudut kiri atasSudut kanan atasSudut kanan bawahSudut kiri bawah{corner}, pada {x} melintang dan {y} ke bawah. Tombol panah memindahkannya, dan Shift bersamanya memindahkannya sepuluh piksel sekali tekan.Sunting halaman {index}Buang halaman {index}Pindahkan halaman {index} lebih awalPindahkan halaman {index} lebih akhir{count} halaman{count} halamanA4 atau A5US LetterUS Legalsebuah kartu namaHalamannya keluar {ratio}, dan itu bentuk {paper}.Halamannya keluar {ratio}, dan itu bentuk {paper} dalam posisi menyamping.Halamannya keluar {ratio}, dan itu bukan lembar standar.Bentuknya diperhitungkan dari perspektif di dalam fotonya, jadi ia bentuk halamannya alih-alih bentuk yang tampak di gambarnya.Fotonya diambil tegak lurus, jadi bentuknya diukur langsung dari tepinya.{width} kali {height} piksel, sekitar {dpi} DPI di atas halaman seukuran itu — cukup untuk dicetak.{width} kali {height} piksel, sekitar {dpi} DPI di atas halaman seukuran itu. Baik di layar, sedikit lembek di kertas.{width} kali {height} piksel, sekitar {dpi} DPI di atas halaman seukuran itu. Ambil fotonya lebih dekat kalau ini harus dicetak.{width} kali {height} piksel.Halamannya mengisi {percent}% fotonya.Halamannya hanya mengisi {percent}% fotonya, jadi sebagian besar yang difoto adalah meja. Lebih dekat lain kali.Lembut: kertasnya diratakan dan tidak banyak lagi. Untuk halaman dengan pensil samar atau sebuah foto di atasnya.Setelan yang biasa: kertasnya kembali putih dan teks tercetak kembali hitam.Keras: apa pun yang abu-abu didorong ke hitam atau ke putih. Paling bersih pada halaman cetak polos, dan merusak pada apa pun yang ada gambarnya.Halaman {done} dari {total}…Menulis dokumennya…{name} — {size}, {pages}.{name} — {size}, {pages}.Disimpan pada satu bit per piksel dan dikompres dengan tepat, dan itulah sebabnya ia sekecil ini.Halamannya disimpan sebagai JPEG pada kualitas yang Anda pilih.Halamannya disimpan sebagai PNG, yang tanpa kehilangan dan itulah yang diinginkan gambar dua warna — JPEG akan sekaligus lebih besar dan buram di sekeliling setiap huruf.Tidak ada tanggal, tidak ada penulis, tidak ada nama mesin: satu-satunya yang ada di dokumennya selain halamannya adalah nama alat ini.Setiap lembar menjadi seukuran halamannya sendiri yang sebenarnya, pada resolusi di atas. Tidak ada yang diberi bilah kosong.Setiap halaman ditaruh di atas lembar {name}, di dalam marginnya, apa pun bentuk yang keluar.Peramban ini tidak bisa membuka {name}. Kalau itu foto HEIC dari sebuah iPhone, ubah dulu.Pilih setidaknya satu foto dulu.Ada yang tidak beres saat membuat file-nya: {detail}dokumen Anda tidak pergi ke mana pun. {total} file dimuat, semuanya milik halaman ini sendiri. {platform}sesuatu menghubungi {hosts}, dan itu tidak pernah dilakukan alat ini. Anggap itu layak diselidiki. {platform}Skrip iklan, pengukuran, dan tombol donasi milik halaman ini dimuat dari {hosts} host; tidak satu pun diberi sebuah foto atau satu byte darinya.Skrip iklan, pengukuran, dan tombol donasi milik halaman ini dimuat dari {hosts} host; tidak satu pun diberi sebuah foto atau satu byte darinya.
Apakah ini berhasil?
Apa yang salah?
Terima kasih — ini membantu.
Hanya jawabannya yang dikirim, dan hanya saat Anda menekan tombol. File Anda, namanya, atau apa pun tentangnya tidak pernah dikirim.
# Pemindai Dokumen — foto sebuah halaman, diluruskan
Foto halamannya. Dapatkan sesuatu yang tampak seperti hasil pindaian.
> Ubah foto ponsel sebuah halaman menjadi PDF yang lurus dan tercahayai rata. Sudutnya dicarikan untuk Anda, perspektifnya diluruskan, bayangannya dibagi keluar. Berjalan sepenuhnya di peramban Anda: tidak ada yang diunggah.
Halaman ini adalah alat interaktif yang berjalan sepenuhnya di peramban Anda, di https://abox.tools/id/pemindai-dokumen/ — tidak ada yang Anda berikan padanya yang diunggah. Berikut ini semua yang dikatakan halaman tentang alat ini dalam kata-kata; untuk memakainya, buka alamat tersebut.
## dokumen Anda **tidak pernah diunggah**. Tidak ada server.
Fotonya didekodekan, diluruskan, dibersihkan, dan ditulis ke dalam sebuah PDF oleh peramban Anda sendiri, tanpa apa pun selain hitungan dan kodek yang memang sudah dibawanya. Alat ini tidak punya fitur jaringan dalam bentuk apa pun — tidak ada yang diambil, tidak ada yang dikirim — dan alasan hal itu penting di sini adalah apa yang biasa difoto orang halamannya: paspor, slip gaji, surat sewa, formulir yang diminta sebuah kantor untuk “dipindai dan dikembalikan”.
- ✗ Tanpa unggah
- ✗ Tanpa akun
- ✗ Tanpa tanda air
- ✓ Jalan tanpa internet
- ✓ Sumber terbuka
## Cara memindai dokumen dengan kamera ponsel Anda
1. **Foto halamannya.** Dari atas, dengan seluruh halamannya di dalam bingkai dan keempat sudutnya terlihat atau hampir terlihat. Ia tidak harus tegak lurus dan tidak harus tercahayai rata: sudut dan bayangan itulah yang menjadi tugas alat ini. Yang penting adalah mengisi bingkainya — halaman yang difoto dari seberang ruangan tidak punya detail di dalamnya untuk dipulihkan.
2. **Periksa keempat sudutnya.** Mereka dicarikan untuk Anda ketika fotonya dibaca, dan halamannya mengatakannya ketika ia tidak yakin — halaman di atas meja yang warnanya sama dengan kertasnya memang sungguh sulit dilihat tepinya. Tekan di mana pun pada fotonya dan sudut terdekat datang ke jari Anda, atau jangkau satu dengan `Tab` lalu pindahkan dengan tombol panah.
3. **Pilih apa yang dilakukan pada cahayanya.** “Warna, diratakan” mengukur kertasnya di seluruh halaman lalu membaginya keluar, sehingga bayangannya hilang dan sebuah stempel atau tanda tangan tetap berwarna. “Hitam putih” melangkah lebih jauh dan itulah yang membuat sebuah pindaian cukup kecil untuk dikirim lewat email. Yang Anda lihat di layar adalah hasil sebenarnya, dihasilkan oleh kode yang sama yang menulis file-nya.
4. **Tambahkan halaman lainnya.** Setiap foto yang Anda tambahkan menjadi halaman lain dari dokumen yang sama, dalam urutan mereka didaftar, dan masing-masing menyimpan sudutnya sendiri. Panah pada sebuah halaman di barisnya memindahkannya lebih awal atau lebih akhir.
5. **Simpan PDF-nya, dan buka sebelum Anda mengirimnya.** Dokumennya ditulis di sini, di dalam memori halaman ini. Tidak ada yang diunggah untuk membuatnya, dan tidak ada apa pun tentangnya yang dilaporkan ke mana pun.
## Versi lebih lengkap
[Cara memindai dokumen dengan ponsel Anda](https://abox.tools/id/panduan/memindai-dokumen-dengan-ponsel/): Apa yang memisahkan foto sebuah halaman dari pindaian sebuah halaman: sudutnya, cahaya yang tidak rata, dan ukuran file-nya. Bagaimana mengambil fotonya, apa yang dibetulkan sesudahnya, dan kenapa tidak satu pun dari itu butuh server.
## Juga ada di dalam kotak
- [Ekstrak Audio dari Video](https://abox.tools/id/ekstrak-audio-dari-video/): Jatuhkan sebuah video dan ambil suaranya. Gambarnya tidak pernah didekode, dan tidak ada yang diunggah.
- [Pemotong Audio](https://abox.tools/id/potong-audio/): Tandai bagian yang layak disimpan sambil diputar. Dapatkan kembali sebagai satu file, dipotong di tempat yang Anda sebutkan.
- [Penyunting Audio](https://abox.tools/id/sunting-audio/): Putar terbalik, ubah kecepatannya, angkat rekaman yang pelan — semuanya di sini, di mesin Anda.
- [Penggabung dan Pemisah PDF](https://abox.tools/id/gabung-pdf/): Halaman dipindah-pindah tanpa perjalanan bolak-balik ke server.
## Pertanyaan
### Apakah dokumen saya diunggah ke suatu tempat?
Tidak. Fotonya didekodekan, diluruskan, dibersihkan, dan ditulis ke dalam sebuah PDF oleh peramban Anda sendiri di perangkat keras Anda sendiri. Alat ini tidak punya fitur jaringan dalam bentuk apa pun — ia tidak pernah mengambil apa pun dan tidak pernah mengirim apa pun — dan `Content-Security-Policy` halaman ini menyebut satu per satu setiap alamat yang boleh dihubunginya, dan tidak satu pun milik situs ini. Muat halamannya sekali, cabut koneksi internet, dan ia tetap bekerja.
### Bagaimana ia menemukan sudut halamannya tanpa model?
Dengan mencari empat tepi lurus panjang yang menyusun sebuah persegi panjang. Fotonya dikecilkan, gradiennya diambil — di mana gambarnya berubah, dan ke arah mana — dan setiap piksel yang duduk di sebuah tepi memberi suara untuk garis lurus tempat ia akan terbaring. Garis yang kuat dipasangkan menjadi calon persegi panjang, dan setiap calon dinilai dengan menyusuri keempat sisinya lalu menanyakan seberapa banyak dari masing-masing sisi yang benar-benar punya tepi di bawahnya, dan apakah keempatnya adalah batas dari satu benda: sebuah halaman lebih terang daripada sekelilingnya, atau lebih gelap, tapi ia sama di keempat sisinya, dan itulah yang mencegah sebaris teks dikira sebagai bagian bawah halamannya. Tidak ada bobot, tidak ada yang diunduh, dan hitungannya adalah hitungan yang sama untuk setiap dokumen yang melewatinya.
### Sudut yang ditemukannya salah. Sekarang bagaimana?
Seret. Sudutnya adalah posisi awal dan tidak pernah sebuah keputusan: pindaiannya diambil dari di mana pun keempatnya berakhir. Tekan di mana pun pada fotonya dan sudut terdekat melompat ke jari Anda, dan itu lebih mudah daripada mengenai sebuah pegangan kecil, dan tombol panah memindahkan sudut yang terfokus satu piksel sekali tekan. Halamannya juga memberi tahu Anda ketika sudutnya sebuah tebakan alih-alih sebuah temuan, dan menandai halaman itu di barisnya — halaman yang terbaring di meja yang kurang lebih sewarna dengannya adalah alasan yang biasa, karena di sana memang hampir tidak ada tepi untuk ditemukan.
### Kenapa halaman yang diluruskan keluar dengan bentuk yang benar, dan tidak gepeng?
Karena bentuknya dipulihkan dari perspektifnya alih-alih diukur dari tepinya. Halaman yang difoto dari sudut mengalami pemendekan pada tepi jauhnya, jadi metode yang gamblang — ambil pasangan tepi berlawanan yang terpanjang lalu sebut itu rasionya — menghasilkan A4 yang kelihatan pendek, dan itulah yang diberikan kebanyakan pemindai web. Foto sebuah persegi panjang sebenarnya membawa cukup informasi untuk memulihkan baik rasio aspek persegi panjangnya maupun panjang fokus kameranya, asalkan kameranya kamera biasa; itu hasil dari Zhang dan He pada tahun 2003, dan itulah yang dilakukan `src/geometry.js`. Kalau fotonya diambil tegak lurus, tidak ada perspektif untuk dijadikan pangkal dan memang tidak dibutuhkan, karena tepinya lalu menjadi tepat — jadi ia kembali ke tepinya, dan halamannya mengatakan yang mana dari keduanya yang menjawab.
### Apa sebenarnya yang dilakukan “dibersihkan” pada gambarnya?
Ia membagi keluar cahayanya. Kecerahan kertasnya sendiri diukur di seluruh halaman — sebuah kisi ubin, dan di setiap ubin sebuah persentil tinggi dari kecerahannya, yang terlalu gelap dan terlalu jarang untuk digerakkan teks — dan setiap piksel dibagi dengan kertas yang diperkirakan di titik itu. Yang tersisa adalah tintanya, tercahayai rata, dengan bayangan dan peredupannya hilang. Itu tidak sama dengan menaikkan kontras: menaikkan kontras sebuah halaman yang difoto membuat bagian terangnya putih, bagian gelapnya hitam, dan tulisan di bagian gelapnya tak terbaca, dan itulah sebabnya “auto levels” membuat gambar semacam ini lebih buruk alih-alih lebih baik.
### Kenapa mode hitam putihnya jauh lebih kecil?
Karena gambar dengan dua warna di dalamnya memang sepersekian data dari gambar dengan enam belas juta warna, dan di sini ia disimpan begitu: satu bit per piksel, dipak delapan per byte dan dikompres dengan tepat, alih-alih sebagai JPEG dari sebuah gambar hitam putih. Pada halaman yang sama ia keluar sekitar delapan belas kali lebih kecil daripada mode warnanya, jadi kontrak dua puluh halaman mendarat di bawah satu megabita alih-alih di sekitar lima belas. Ambangnya adalah ambang Sauvola, yang memutuskan setiap piksel terhadap rata-rata dan sebaran lingkungannya sendiri alih-alih terhadap satu angka untuk seluruh halaman — itulah yang menjaga tulisan di dalam sebuah bayangan. Ia tidak punya nada tengah, jadi halaman yang ada fotonya sebaiknya memakai salah satu mode lain.
### Bisakah saya menaruh beberapa halaman dalam satu PDF?
Bisa. Setiap foto yang Anda tambahkan menjadi halaman lain, dalam urutan mereka didaftar, dan setiap halaman menyimpan sudutnya sendiri — jadi setumpuk halaman yang difoto satu demi satu menjadi satu dokumen. Panah pada setiap halaman di barisnya memindahkannya lebih awal atau lebih akhir. Setelan pembersihannya dipakai bersama oleh semuanya dengan sengaja: halaman dalam satu dokumen yang dibersihkan secara berbeda tampak seperti dua dokumen.
### Apakah ia membaca teksnya, supaya saya bisa mencari di PDF-nya?
Tidak. Tidak ada lapisan teks dan tidak ada pengenalan karakter: yang keluar adalah gambar sebuah halaman di atas sebuah halaman. Melakukannya dengan benar berarti sebuah mesin OCR, yang berarti puluhan megabita model untuk diunduh — dan pemindai dokumen yang mengambil sebuah model sebelum bisa membaca slip gaji Anda akan menjadi pemindai dokumen yang punya alasan untuk menelepon pulang soal slip gaji. Kalau Anda butuh teksnya, mode hitam putihnya menghasilkan persis jenis file yang paling cocok bagi perangkat lunak OCR di mesin Anda sendiri.
### Hasilnya buram. Kenapa?
Hampir selalu karena halamannya kecil di dalam fotonya. Panel di bawah pratinjaunya mengatakan seberapa banyak bingkai yang diisi halamannya dan kira-kira berapa titik per inci artinya di atas selembar seukuran itu — di bawah sekitar 150 DPI sebuah pindaian yang dicetak tampak lembek, dan tidak ada alat yang bisa berbuat apa-apa tentang detail yang memang tidak pernah ada di file-nya. Mendekatlah alih-alih memperbesar, tahan diam, dan biarkan kameranya memfokus pada halamannya sebelum menekan tombolnya. Guncang kamera adalah penyebab yang satunya, dan itu juga tidak bisa dipulihkan.
### Apakah gratis, dan apakah saya perlu akun?
Gratis; tidak ada akun, tidak ada masuk, tidak ada masa uji coba, tidak ada batas halaman, dan tidak ada tanda air. Tidak ada batas ukuran fotonya juga, karena tidak ada server yang membayarnya — pekerjaannya terjadi di mesin Anda sendiri. Situs ini memasang iklan, dan itulah yang membiayainya; iklan tidak diberi apa pun tentang dokumen Anda.
## Cara memverifikasi klaim privasi ini
- **Dokumen Anda tidak punya tujuan ke mana pun.** Content-Security-Policy menyebut satu per satu setiap alamat yang boleh dihubungi halaman ini, dan tidak satu pun milik situs ini. Tidak ada titik akhir di sini tempat foto Anda bisa dikumpulkan, dan tidak ada kode yang akan mengirimnya seandainya ada.
- **Tidak ada model, jadi tidak ada yang perlu diunduh dan tidak ada yang perlu ditanyakan.** Menemukan keempat sudut sebuah halaman dilakukan dengan hitungan: gradien gambarnya, sebuah pemungutan suara untuk garis lurus di dalamnya, dan sebuah pemeriksaan atas apa yang sebenarnya ada di bawah setiap sisi persegi panjang yang menang. Tanpa bobot, tanpa runtime inferensi, tanpa apa pun yang diambil saat pemakaian pertama, dan tanpa apa pun yang berperilaku berbeda pada dokumen orang lain dibanding pada dokumen Anda — lihat `src/detect.js`.
- **Dokumennya tidak membawa tanggal, penulis, atau nama mesin.** Pindaian adalah sesuatu yang dikirim orang kepada orang lain, biasanya karena sebuah kantor memintanya. Satu-satunya yang ditulis ke dalam PDF-nya selain halamannya sendiri adalah nama alat ini, dan sebuah judul kalau Anda mengetiknya. Tidak ada tanggal pembuatan, tidak ada penulis, tidak ada nomor seri, dan tidak ada apa pun yang diturunkan dari jam Anda, nama file Anda, atau komputer Anda — lihat `src/document.js`.
- **Tidak ada di sini yang mengambil apa pun.** Tidak ada `fetch`, tidak ada `XMLHttpRequest`, dan tidak ada `sendBeacon` di mana pun di dalam `src/`. Pekerjaannya adalah `getImageData`, beberapa perulangan atas byte-nya, dan pengode JPEG milik peramban sendiri — semuanya sudah terpasang di mesin Anda.
- **Jalan tanpa internet.** Putuskan koneksi jaringan dan alat ini tidak berubah, karena sejak awal memang tidak ada langkah jaringan di dalamnya. Itulah bukti yang paling sederhana — dan yang layak dijalankan sebelum Anda memindai sebuah paspor.
**Periksa sendiri.** Anda tidak perlu memercayai semua ini begitu saja. Halaman ini dihasilkan dari templat dan konfigurasi di repositori oleh skrip build yang bisa Anda baca dan jalankan sendiri, dan hasilnya dikirim ke cabang `dist` — jadi Anda bisa membandingkan apa yang disajikan dengan apa yang dihasilkan oleh build dari kode sumbernya: https://github.com/A-Box-of-Tools/website
File yang layak dibaca lebih dulu adalah `config/site.toml` untuk Content-Security-Policy, `src/detect.js` untuk cara sudutnya ditemukan tanpa model apa pun, `src/warp.js` untuk pelurusannya, dan `src/clean.js` untuk cara cahaya yang tidak rata dibagi keluar.
Cara memindai dokumen dengan kamera ponsel Anda
Foto halamannya. Dari atas, dengan seluruh halamannya di dalam bingkai dan keempat sudutnya terlihat atau hampir terlihat. Ia tidak harus tegak lurus dan tidak harus tercahayai rata: sudut dan bayangan itulah yang menjadi tugas alat ini. Yang penting adalah mengisi bingkainya — halaman yang difoto dari seberang ruangan tidak punya detail di dalamnya untuk dipulihkan.
Periksa keempat sudutnya. Mereka dicarikan untuk Anda ketika fotonya dibaca, dan halamannya mengatakannya ketika ia tidak yakin — halaman di atas meja yang warnanya sama dengan kertasnya memang sungguh sulit dilihat tepinya. Tekan di mana pun pada fotonya dan sudut terdekat datang ke jari Anda, atau jangkau satu dengan Tab lalu pindahkan dengan tombol panah.
Pilih apa yang dilakukan pada cahayanya. “Warna, diratakan” mengukur kertasnya di seluruh halaman lalu membaginya keluar, sehingga bayangannya hilang dan sebuah stempel atau tanda tangan tetap berwarna. “Hitam putih” melangkah lebih jauh dan itulah yang membuat sebuah pindaian cukup kecil untuk dikirim lewat email. Yang Anda lihat di layar adalah hasil sebenarnya, dihasilkan oleh kode yang sama yang menulis file-nya.
Tambahkan halaman lainnya. Setiap foto yang Anda tambahkan menjadi halaman lain dari dokumen yang sama, dalam urutan mereka didaftar, dan masing-masing menyimpan sudutnya sendiri. Panah pada sebuah halaman di barisnya memindahkannya lebih awal atau lebih akhir.
Simpan PDF-nya, dan buka sebelum Anda mengirimnya. Dokumennya ditulis di sini, di dalam memori halaman ini. Tidak ada yang diunggah untuk membuatnya, dan tidak ada apa pun tentangnya yang dilaporkan ke mana pun.
Versi lebih lengkap
Cara memindai dokumen dengan ponsel AndaApa yang memisahkan foto sebuah halaman dari pindaian sebuah halaman: sudutnya, cahaya yang tidak rata, dan ukuran file-nya. Bagaimana mengambil fotonya, apa yang dibetulkan sesudahnya, dan kenapa tidak satu pun dari itu butuh server.
Tidak. Fotonya didekodekan, diluruskan, dibersihkan, dan ditulis ke dalam sebuah PDF oleh peramban Anda sendiri di perangkat keras Anda sendiri. Alat ini tidak punya fitur jaringan dalam bentuk apa pun — ia tidak pernah mengambil apa pun dan tidak pernah mengirim apa pun — dan Content-Security-Policy halaman ini menyebut satu per satu setiap alamat yang boleh dihubunginya, dan tidak satu pun milik situs ini. Muat halamannya sekali, cabut koneksi internet, dan ia tetap bekerja.
Bagaimana ia menemukan sudut halamannya tanpa model?
Dengan mencari empat tepi lurus panjang yang menyusun sebuah persegi panjang. Fotonya dikecilkan, gradiennya diambil — di mana gambarnya berubah, dan ke arah mana — dan setiap piksel yang duduk di sebuah tepi memberi suara untuk garis lurus tempat ia akan terbaring. Garis yang kuat dipasangkan menjadi calon persegi panjang, dan setiap calon dinilai dengan menyusuri keempat sisinya lalu menanyakan seberapa banyak dari masing-masing sisi yang benar-benar punya tepi di bawahnya, dan apakah keempatnya adalah batas dari satu benda: sebuah halaman lebih terang daripada sekelilingnya, atau lebih gelap, tapi ia sama di keempat sisinya, dan itulah yang mencegah sebaris teks dikira sebagai bagian bawah halamannya. Tidak ada bobot, tidak ada yang diunduh, dan hitungannya adalah hitungan yang sama untuk setiap dokumen yang melewatinya.
Sudut yang ditemukannya salah. Sekarang bagaimana?
Seret. Sudutnya adalah posisi awal dan tidak pernah sebuah keputusan: pindaiannya diambil dari di mana pun keempatnya berakhir. Tekan di mana pun pada fotonya dan sudut terdekat melompat ke jari Anda, dan itu lebih mudah daripada mengenai sebuah pegangan kecil, dan tombol panah memindahkan sudut yang terfokus satu piksel sekali tekan. Halamannya juga memberi tahu Anda ketika sudutnya sebuah tebakan alih-alih sebuah temuan, dan menandai halaman itu di barisnya — halaman yang terbaring di meja yang kurang lebih sewarna dengannya adalah alasan yang biasa, karena di sana memang hampir tidak ada tepi untuk ditemukan.
Kenapa halaman yang diluruskan keluar dengan bentuk yang benar, dan tidak gepeng?
Karena bentuknya dipulihkan dari perspektifnya alih-alih diukur dari tepinya. Halaman yang difoto dari sudut mengalami pemendekan pada tepi jauhnya, jadi metode yang gamblang — ambil pasangan tepi berlawanan yang terpanjang lalu sebut itu rasionya — menghasilkan A4 yang kelihatan pendek, dan itulah yang diberikan kebanyakan pemindai web. Foto sebuah persegi panjang sebenarnya membawa cukup informasi untuk memulihkan baik rasio aspek persegi panjangnya maupun panjang fokus kameranya, asalkan kameranya kamera biasa; itu hasil dari Zhang dan He pada tahun 2003, dan itulah yang dilakukan src/geometry.js. Kalau fotonya diambil tegak lurus, tidak ada perspektif untuk dijadikan pangkal dan memang tidak dibutuhkan, karena tepinya lalu menjadi tepat — jadi ia kembali ke tepinya, dan halamannya mengatakan yang mana dari keduanya yang menjawab.
Apa sebenarnya yang dilakukan “dibersihkan” pada gambarnya?
Ia membagi keluar cahayanya. Kecerahan kertasnya sendiri diukur di seluruh halaman — sebuah kisi ubin, dan di setiap ubin sebuah persentil tinggi dari kecerahannya, yang terlalu gelap dan terlalu jarang untuk digerakkan teks — dan setiap piksel dibagi dengan kertas yang diperkirakan di titik itu. Yang tersisa adalah tintanya, tercahayai rata, dengan bayangan dan peredupannya hilang. Itu tidak sama dengan menaikkan kontras: menaikkan kontras sebuah halaman yang difoto membuat bagian terangnya putih, bagian gelapnya hitam, dan tulisan di bagian gelapnya tak terbaca, dan itulah sebabnya “auto levels” membuat gambar semacam ini lebih buruk alih-alih lebih baik.
Kenapa mode hitam putihnya jauh lebih kecil?
Karena gambar dengan dua warna di dalamnya memang sepersekian data dari gambar dengan enam belas juta warna, dan di sini ia disimpan begitu: satu bit per piksel, dipak delapan per byte dan dikompres dengan tepat, alih-alih sebagai JPEG dari sebuah gambar hitam putih. Pada halaman yang sama ia keluar sekitar delapan belas kali lebih kecil daripada mode warnanya, jadi kontrak dua puluh halaman mendarat di bawah satu megabita alih-alih di sekitar lima belas. Ambangnya adalah ambang Sauvola, yang memutuskan setiap piksel terhadap rata-rata dan sebaran lingkungannya sendiri alih-alih terhadap satu angka untuk seluruh halaman — itulah yang menjaga tulisan di dalam sebuah bayangan. Ia tidak punya nada tengah, jadi halaman yang ada fotonya sebaiknya memakai salah satu mode lain.
Bisakah saya menaruh beberapa halaman dalam satu PDF?
Bisa. Setiap foto yang Anda tambahkan menjadi halaman lain, dalam urutan mereka didaftar, dan setiap halaman menyimpan sudutnya sendiri — jadi setumpuk halaman yang difoto satu demi satu menjadi satu dokumen. Panah pada setiap halaman di barisnya memindahkannya lebih awal atau lebih akhir. Setelan pembersihannya dipakai bersama oleh semuanya dengan sengaja: halaman dalam satu dokumen yang dibersihkan secara berbeda tampak seperti dua dokumen.
Apakah ia membaca teksnya, supaya saya bisa mencari di PDF-nya?
Tidak. Tidak ada lapisan teks dan tidak ada pengenalan karakter: yang keluar adalah gambar sebuah halaman di atas sebuah halaman. Melakukannya dengan benar berarti sebuah mesin OCR, yang berarti puluhan megabita model untuk diunduh — dan pemindai dokumen yang mengambil sebuah model sebelum bisa membaca slip gaji Anda akan menjadi pemindai dokumen yang punya alasan untuk menelepon pulang soal slip gaji. Kalau Anda butuh teksnya, mode hitam putihnya menghasilkan persis jenis file yang paling cocok bagi perangkat lunak OCR di mesin Anda sendiri.
Hasilnya buram. Kenapa?
Hampir selalu karena halamannya kecil di dalam fotonya. Panel di bawah pratinjaunya mengatakan seberapa banyak bingkai yang diisi halamannya dan kira-kira berapa titik per inci artinya di atas selembar seukuran itu — di bawah sekitar 150 DPI sebuah pindaian yang dicetak tampak lembek, dan tidak ada alat yang bisa berbuat apa-apa tentang detail yang memang tidak pernah ada di file-nya. Mendekatlah alih-alih memperbesar, tahan diam, dan biarkan kameranya memfokus pada halamannya sebelum menekan tombolnya. Guncang kamera adalah penyebab yang satunya, dan itu juga tidak bisa dipulihkan.
Apakah gratis, dan apakah saya perlu akun?
Gratis; tidak ada akun, tidak ada masuk, tidak ada masa uji coba, tidak ada batas halaman, dan tidak ada tanda air. Tidak ada batas ukuran fotonya juga, karena tidak ada server yang membayarnya — pekerjaannya terjadi di mesin Anda sendiri. Situs ini memasang iklan, dan itulah yang membiayainya; iklan tidak diberi apa pun tentang dokumen Anda.