Fotoğrafları Atkinson dithering’e dönüştürme
(gazs.github.io)- Fotoğrafları klasik Macintosh’un 1 bit filtre stiline dönüştürerek yalnızca siyah-beyaz piksellerle Atkinson dithering efektini uygular
- Her piksel, %50 gri eşiğine göre siyah ya da beyaza dönüştürülür ve dönüşüm hatası çevredeki piksellere yayılır
- Hata, mevcut pikselin çevresindeki 6 konuma her birine 1/8 oranında dağıtılarak kendine özgü dokulu siyah-beyaz görüntü oluşturulur
- Ortaya çıkan görsel sağ tıklayıp kaydet ile saklanabilir, ancak tarayıcı kısıtlamaları nedeniyle masaüstüne sürükleyerek kaydedilemez
- Uygulamada Canvas, Drag and Drop events, WebWorkers ve FileReader API kullanılır; çalışması için modern bir tarayıcı gerekir
Atkinson dithering işleme yöntemi
- Bu uygulama, Hyperdither ve HyperScan’de kullanılan klasik Macintosh 1 bit filtresini yeniden üretir
- İşleme süreci, her pikseli %50 gri ile karşılaştırıp siyaha ya da beyaza dönüştürür
- Dönüştürme sırasında oluşan giriş değeri ile çıkış değeri arasındaki fark çevredeki piksellere dağıtılır
- Geçerli X pikselinin sağındaki 2 konumun her birine 1/8
- Sonraki satırda soldan başlayarak 3 konumun her birine 1/8
- Bir sonraki satırda soldaki 1 konuma 1/8
Demo kullanımı ve tarayıcı gereksinimleri
- Render edilen görsel sağ tıklayarak kaydedilebilir
- Tarayıcı kısıtlamaları nedeniyle görsel masaüstüne sürükleyip bırakarak kaydedilemez
- Kod; Canvas, Drag and Drop events, WebWorkers ve FileReader API’lerini kullanır
- Çalıştırmak için modern bir tarayıcı gerekir
1 yorum
Hacker News yorumları
Hâlâ en sevdiğim siyah-beyaz dithering algoritması.
Üniversitede Mac’e bağlı siyah-beyaz düz yataklı bir tarayıcı vardı; muhtemelen bir HyperCard stack’iyle görüntüleri tarayıp siyah-beyaz görsellere dönüştürebiliyorduk.
1988 civarında Mac shareware oyunları yapmaya başladığımda, üniversite kitabevinden aldığım clipart kitabındaki görselleri hızlıca tarayıp “logo” olarak kullanmıştım.
O zamanlar Atkinson algoritmasının ne kadar iyi olduğunu bilmiyordum; ama sonradan başka algoritmalarla dithering yapınca Bill’in kodundaki yayılımın ne kadar iyi olduğunu anladım.
Yakın zamanda bir eInk takvim projesi yaparken ayın çeşitli evrelerine ait fotoğrafları “Atkinson tarzı” bir görsel serisine dönüştürmek istedim; bağlantıdakine benzer bir site bulup ay fotoğraflarına Atkinson dithering uyguladım [1].
[1] Ekran görüntüsündeki ay için bkz.: https://github.com/EngineersNeedArt/SystemSix/blob/10f2332b5...
Bilgi iletişim kutusundaki “as follows”a basmamakta fayda var.
Bir süredir güncellenmemiş gibi görünüyor ve bu arada bağlantı NSFW hâle gelmiş.
Az önce issue olarak bildirdim: https://github.com/gazs/canvas-atkinson-dither/issues/2
Uygulama çok iyi; anchor’ın download özelliğine bir değer verip indirilen dosyaya varsayılan bir ad ve .png uzantısı atanırsa biraz daha iyi olabilir.
Referans: https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorE...
https://github.com/gazs/canvas-atkinson-dither
Yine de başka depolarda GitHub etkinliği sürüyor, belki pull request kabul eder :)
[1]: https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorE...
Neden Sierra dithering değil?
https://tannerhelland.com/2012/12/28/dithering-eleven-algori...
Boş vakitlerde, birden fazla görseli MacPaint’e dönüştürüp 400k MFS formatlı disk imajına koymayı sağlayan bir şey üzerinde çalışıyorum.
https://github.com/minorbug/mfsjs
Bu proje birkaç aydır ana dizinimde hafifçe tozlanıyor.
Kütüphaneyi hazırlarken Gemini Deep Research’ten yardım aldım; başka bir dilde yeniden üretmek ya da iyileştirmek isteyenler için LLM’in ürettiği Markdown’u da ekledim.
Wikipedia’da da böyle yazıyor ama kaynak yok.
Bu uygulama harika, arayüzü de nostalji uyandırıyor.
Bugün Atkinson dithering web component’imin[0] görüntülenme sayısı neden arttı diye merak etmiştim; meğer üzücü haber yüzündenmiş.
Orijinal Mac’ler gibi çok keskin monitörlerde Atkinson dithering’in her zaman en iyi görünen görselleri ürettiğini düşünmüşümdür.
Bir şekilde havalı ve 80’ler hissi veriyor; geçen yılki oyunumda da kullandım.
[0] https://sheep.horse/2023/1/improved_web_component_for_pixel-...
Bazı fotoğraflara bu stil oldukça iyi uyuyor, bazılarına uymuyor.
Garip biçimde modern bir eski zaman hissi veriyor; gerçek eski fotoğraflardaki gibi tek tek noktalar göze batmıyor.
Python’da denemek isterseniz hyperdither var.
https://github.com/tgray/hyperdither
eInk/ePaper cihazlara çok iyi uyacak gibi görünüyor.
Bugün vefat eden Atkinson ile aynı kişi mi, bu da bir anma mı?
Muhtemelen bir anma olduğunu düşünüyorum.
“Keşif” değil “icat” olarak düzeltiyorum. Aşağıya bakın.
O algoritmayı biraz daha öğrenmek istediğim için https://atkinson.franzai.com/ sitesini yaptım.
Birkaç yapay zeka ile tekrar kontrol ettim; umarım bilgiler doğrudur.