Bu sayfanın kodu başlamadı.

index.html dosyasını doğrudan bir klasörden açmak JavaScript modüllerini engeller, bu yüzden bir sayfa fotoğrafı seçildiğinde hiçbir şey olmaz. Klasörü bunun yerine http üzerinden sunun:

powershell -ExecutionPolicy Bypass -File serve.ps1

Ardından http://localhost:8080/ adresini açın.

Belge Tarayıcı — bir sayfanın fotoğrafı, düzeltilmiş

Sayfayı fotoğraflayın. Taranmış görünen bir şey geri alın.

Dil: Türkçe
Kaynak kodu görüntüle
belgeleriniz asla yüklenmez. Sunucu yoktur.

Fotoğraf kendi tarayıcınız tarafından çözülür, düzeltilir, temizlenir ve bir PDF'e yazılır; kullanılan tek şey aritmetik ve tarayıcının zaten beraberinde getirdiği kodlayıcılardır. Bu aracın hiçbir türde ağ özelliği yoktur — getirecek bir şey yok, gönderecek bir şey yok — ve bunun burada önemli olmasının sebebi, insanların hangi sayfaları fotoğrafladığıdır: bir pasaport, bir maaş bordrosu, bir kira sözleşmesi, bir ofisin «tarayıp geri gönderin» dediği bir form.

Canlı kontrol: kontrol ediliyor…

Çevrimdışı: kontrol ediliyor…

Bize güvenmek zorunda değilsiniz: geliştirici araçlarını açın, Ağ sekmesini izleyin ve bir sayfa tarayın. Tek bir istek bile bir fotoğraf, bir küçük resim, bir dosya adı ya da tek bir köşenin konumunu taşımıyor. Ya da internet bağlantısını kesip yine de bir tane tarayın.

1 Fotoğrafları seçin

Her sayfa için bir fotoğraf, üstünden herhangi bir yerden çekilmiş. Sayfanın tamamı kadrajda olmalı ve dört köşesi görünür ya da neredeyse görünür olsun — geri kalan her şey, açı, gölge, üzerinde durduğu masa, zaten bu aracın işi. Birkaç tane ekleyin, ekleme sıranızla tek bir belgenin sayfaları olsunlar.

2 Köşeleri sayfanın üzerine koyun

Fotoğrafın herhangi bir yerine basın, en yakın köşe parmağınıza gelsin; onu sayfanın köşesine sürükleyin. Tab klavyeden bir köşeye ulaşır, ok tuşları onu birer piksel, Shift ile onar piksel oynatır. Burada hiçbir şey nihai değil — tarama, dört köşe nerede biterse oradan alınır.

Bir fotoğraf seçin; burada, dört köşesi sizin için bulunmuş hâlde görünsün.

3 Temizleyin

Aşağıdaki şey gerçek sonuçtur; dosyayı yazan aynı kod tarafından üretilmiştir — düzeltilmiş ve eşitsiz ışığı bölünüp atılmış hâlde. Siz seçerken ekran boyutunda çizilir; dosyanın kendisi fotoğrafın kendi çözünürlüğünde yapılır.

Renkli, eşitlenmiş Kâğıt sayfa boyunca ölçülür ve bölünüp atılır; böylece gölge gider ve kâğıt beyaza döner, bir mühür, mavi mürekkeple atılmış bir imza ya da vurgulanmış bir satır ise rengini korur. Rengin belgenin bir parçası olduğu durumda kullanılacak olan.

Gri tonlama Aynı eşitleme, renksiz. Renkliden küçüktür ve bir fotoğrafa ya da bir imzaya siyah beyazdan daha yumuşak davranır.

Siyah beyaz Her piksel, sayfanın tamamı için tek bir sayıya göre değil kendi çevresine göre karara bağlanır; gölge içindeki yazıyı okunur tutan da budur. Bir taramayı küçük yapan şey budur: yirmi sayfalık bir sözleşme bu yolla bir megabaytın altına iner, fotoğraf olarak ise on beş civarına çıkar. Ara tonu yoktur, bu yüzden üzerinde fotoğraf olan hiçbir şey bunu kullanmamalıdır.

Olduğu gibi bırak Düzeltilmiş ve başka hiçbir şey yapılmamış. Kâğıdın kendisinin önemli olduğu bir sayfa için — eski bir şey, renkli bir şey, bir fotoğraf.

Düzeltilecek bir fotoğraf olduğunda düzeltilmiş sayfa burada görünür.

4 Belgeyi kaydedin

PDF burada, bu sayfanın belleğinde, sayfa sayfa yazılır. Bu aracın öbür ucunda bir maaş bordrosunun, bir pasaportun ya da bir sözleşmenin gönderilebileceği bir sunucu yok ve olsaydı bile onu gönderecek bir kod yok.

Baskı çözünürlüğü Belirli bir piksel sayısının ne kadar büyük bir yaprak sayılacağı. Belgenin basıldığı boyutu değiştirir, taramanın tek bir pikselini değiştirmez.

En uzun kenar Düzeltilmiş sayfa için bir tavan. Bir sayfanın fotoğrafı, sayfanın hak ettiğinden çok daha fazla piksel taşır ve uzun kenarda 2400, A4'te yaklaşık 200 DPI eder.

Kalite JPEG olarak saklanan renkli ve gri tonlama kipleri için. Siyah beyaz sayfalar tam olarak saklanır, dolayısıyla bu onlara bir şey yapmaz.

Belge başlığı (isteğe bağlı) Sayfaların dışında belgeye yazılan tek şey. Tarih yok, yazar yok ve bu makine hakkında hiçbir şey yok — src/document.js'e bakın.

%82

Markdown olarak görüntüle

Telefon kameranızla bir belge nasıl taranır

  1. Sayfayı fotoğraflayın. Yukarıdan, sayfanın tamamı kadrajda ve dört köşesi görünür ya da neredeyse görünür olacak şekilde. Tam karşıdan olması gerekmez ve eşit aydınlatılmış olması gerekmez: açı ve gölge zaten bu aracın işidir. Önemli olan kadrajı doldurmaktır — odanın öbür ucundan fotoğraflanmış bir sayfada geri kazanılacak ayrıntı yoktur.
  2. Dört köşeyi denetleyin. Fotoğraf okunurken sizin için bulunurlar ve emin olunmadığında sayfa bunu söyler — kâğıtla aynı renkteki bir masanın üzerindeki bir sayfanın kenarını görmek gerçekten zordur. Fotoğrafın herhangi bir yerine basın, en yakın köşe parmağınıza gelsin; ya da Tab ile birine ulaşıp ok tuşlarıyla oynatın.
  3. Işıkla ne yapılacağını seçin. «Renkli, eşitlenmiş», kâğıdın kendi parlaklığını sayfa boyunca ölçer ve bölüp atar; böylece gölge gider, bir mühür ya da bir imza rengini korur. «Siyah beyaz» daha ileri gider ve bir taramayı e-postayla gönderilebilecek kadar küçük yapan da odur. Ekranda gördüğünüz şey gerçek sonuçtur; dosyayı yazan aynı kod tarafından üretilmiştir.
  4. Diğer sayfaları ekleyin. Eklediğiniz her fotoğraf, listelendikleri sırayla aynı belgenin bir başka sayfası olur ve her biri kendi köşelerini korur. Şeritteki bir sayfanın üzerindeki oklar onu öne ya da arkaya alır.
  5. PDF'i kaydedin ve göndermeden önce açın. Belge burada, bu sayfanın belleğinde yazılır. Onu yapmak için hiçbir şey yüklenmedi ve onun hakkında hiçbir şey hiçbir yere bildirilmedi.

Uzun sürüm

Bir belge telefonla nasıl taranır Bir sayfanın fotoğrafını, o sayfanın taramasından ayıran şey: açı, dengesiz ışık ve dosya boyutu. Fotoğrafın nasıl çekileceği, sonradan neyin düzeltileceği ve bunların hiçbirinin neden bir sunucuya ihtiyacı olmadığı.

Sorular

Belgem herhangi bir yere yükleniyor mu?

Hayır. Fotoğraf kendi donanımınızda, kendi tarayıcınız tarafından çözülür, düzeltilir, temizlenir ve bir PDF'e yazılır. Bu aracın hiçbir türde ağ özelliği yoktur — hiçbir zaman bir şey getirmez ve hiçbir zaman bir şey göndermez — ve sayfanın Content-Security-Policy'si iletişim kurabileceği her adresi tek tek sayar; bunların hiçbiri bu siteye ait değildir. Sayfayı bir kez yükleyin, internet bağlantısını kesin, yine de çalışır.

Model olmadan sayfanın köşelerini nasıl buluyor?

Bir dikdörtgeni oluşturan dört uzun düz kenarı arayarak. Fotoğraf küçültülür, gradyanı alınır — görüntünün nerede ve hangi yönde değiştiği — ve bir kenarın üzerinde duran her piksel, üzerinde yatacağı düz çizgi için oy verir. Güçlü çizgiler aday dikdörtgenlere eşlenir ve her aday, dört kenarı gezilerek puanlanır: her kenarın ne kadarının altında gerçekten bir kenar var ve bu dördü tek bir şeyin sınırı mı? Bir sayfa etrafındakinden ya daha açıktır ya daha koyu, ama dört kenarında da aynı yönde farklıdır; bir metin satırının sayfanın alt kenarı sanılmasını engelleyen de budur. Ağırlık yoktur, hiçbir şey indirilmez ve aritmetik, içinden geçen her belge için aynı aritmetiktir.

Bulduğu köşeler yanlış. Şimdi ne olacak?

Onları sürükleyin. Köşeler bir başlangıç konumudur, asla bir karar değil: tarama, dördü nerede biterse oradan alınır. Fotoğrafın herhangi bir yerine basın, en yakın köşe parmağınıza sıçrasın — bu, küçük bir tutamağı tutturmaktan kolaydır — ve ok tuşları odaktaki köşeyi birer piksel oynatır. Sayfa ayrıca köşelerin bir bulgu değil bir tahmin olduğu durumu söyler ve o sayfayı şeritte işaretler — kendi rengine yakın bir masanın üzerinde duran bir sayfa bunun olağan sebebidir, çünkü orada bulunacak neredeyse hiç kenar yoktur.

Düzeltilmiş sayfa neden doğru şekilde çıkıyor da ezik çıkmıyor?

Çünkü şekil kenarlardan ölçülmüyor, perspektiften geri kazanılıyor. Açıyla fotoğraflanmış bir sayfanın uzak kenarı kısalmış olur; bu yüzden bariz yöntem — en uzun karşılıklı kenar çiftini alıp orana bu demek — gözle görülür biçimde bodur bir A4 üretir ki çoğu web tarayıcının size verdiği de budur. Bir dikdörtgenin fotoğrafı, kameranın sıradan bir kamera olduğu bilgisinden başka bir şey gerekmeden, hem dikdörtgenin en boy oranını hem de kameranın odak uzaklığını geri kazanmaya yetecek bilgiyi gerçekten taşır; bu, Zhang ve He'nin 2003 tarihli bir sonucudur ve src/geometry.js'in yaptığı da budur. Fotoğrafın tam karşıdan çekildiği yerde çalışılacak bir perspektif yoktur ve gerekmez de, çünkü o zaman kenarlar zaten kesindir — öyle durumlarda onlara döner ve sayfa hangisinin cevap verdiğini söyler.

«Temizleme» görüntüye aslında ne yapıyor?

Işığı bölüp atıyor. Kâğıdın kendi parlaklığı sayfa boyunca ölçülür — bir mozaik ızgarası ve her karede parlaklığın yüksek bir yüzdelik değeri; metin bunu oynatamayacak kadar koyu ve seyrektir — ve her piksel, o noktada tahmin edilen kâğıda bölünür. Geriye kalan şey, eşit aydınlatılmış mürekkeptir; gölge ve kenarlardaki karartı gitmiştir. Bu, kontrastı artırmakla aynı şey değildir: fotoğraflanmış bir sayfanın kontrastını artırmak parlak kısmı beyaz, koyu kısmı siyah ve koyu kısımdaki yazıyı okunamaz yapar; «otomatik seviyeler»in bu resimleri iyileştirmek yerine bozmasının sebebi de budur.

Siyah beyaz kip neden bu kadar küçük?

Çünkü iki renkli bir resim, on altı milyon renkli bir resmin verisinin gerçekten küçük bir kesridir ve burada öyle saklanır: piksel başına bir bit, sekizi bir bayta paketlenmiş ve tam olarak sıkıştırılmış — siyah beyaz bir resmin JPEG'i olarak değil. Aynı sayfalarda renkli kipten yaklaşık on sekiz kat küçük çıkar; yani yirmi sayfalık bir sözleşme on beş civarı yerine bir megabaytın altına iner. Eşikleme Sauvola'nın yöntemidir; her pikseli, sayfanın tamamı için tek bir sayıya göre değil, kendi komşuluğunun ortalamasına ve yayılımına göre karara bağlar — gölge içindeki yazıyı ayakta tutan da budur. Ara tonu yoktur, bu yüzden üzerinde fotoğraf olan bir sayfa diğer kiplerden birini kullanmalıdır.

Bir PDF'e birkaç sayfa koyabilir miyim?

Evet. Eklediğiniz her fotoğraf, listelendikleri sırayla bir başka sayfa olur ve her sayfa kendi köşelerini korur — yani arka arkaya fotoğraflanmış bir sayfa yığını tek bir belgeye dönüşür. Şeritteki her sayfanın üzerindeki oklar onu öne ya da arkaya alır. Temizleme ayarı bilinçli olarak hepsi için ortaktır: bir belgede farklı temizlenmiş sayfalar iki belge gibi görünür.

Metni okuyor mu, PDF'te arama yapabilecek miyim?

Hayır. Metin katmanı ve karakter tanıma yok: çıkan şey, bir sayfa üzerinde sayfanın resmidir. Bunu doğru dürüst yapmak bir OCR motoru demektir ki bu da indirilecek onlarca megabayt model eder — ve maaş bordronuzu okuyabilmek için önce bir model getiren bir belge tarayıcı, maaş bordroları hakkında eve haber vermek için bir sebebi olan bir belge tarayıcı olurdu. Metin gerekiyorsa siyah beyaz kip, kendi makinenizdeki OCR yazılımının en iyi çalıştığı türden bir dosya üretir.

Bulanık çıktı. Neden?

Neredeyse her zaman sayfa fotoğrafta küçük olduğu için. Ön izlemenin altındaki panel, sayfanın kadrajın ne kadarını doldurduğunu ve o boyutta bir kâğıtta bunun kabaca inç başına kaç noktaya denk geldiğini söyler — yaklaşık 150 DPI'ın altında basılmış bir tarama yumuşak görünür ve hiçbir aracın, dosyada hiç olmamış bir ayrıntı için yapabileceği bir şey yoktur. Yakınlaştırmak yerine yaklaşın, sabit tutun ve düğmeye basmadan önce kameranın sayfaya odaklanmasını bekleyin. Kamera sarsıntısı diğer sebeptir ve o da geri kazanılamaz.

Ücretsiz mi, hesap açmam gerekiyor mu?

Ücretsiz; hesap yok, giriş yok, deneme süresi yok, sayfa sınırı yok, filigran yok. Fotoğrafların boyutunda da bir sınır yok, çünkü bunun masrafını ödeyen bir sunucu yok — iş sizin kendi cihazınızda oluyor. Sitede reklam var, masrafı karşılayan da o; reklamlara belgeleriniz hakkında hiçbir şey verilmiyor.