1 puan yazan GN⁺ 2025-06-08 | 1 yorum | WhatsApp'ta paylaş
  • 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

 
GN⁺ 2025-06-08
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...

    • Gerçekten çok güzel! Bill’in kodunu görebileceğim bir yer varsa, kendim kurcalayıp öğrenmek isterim.
  • 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ş.

  • 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...

  • Neden Sierra dithering değil?
    https://tannerhelland.com/2012/12/28/dithering-eleven-algori...

    • Başta erken dönem Mac’lere duyulan nostaljiydi; Bill Atkinson da yeni vefat edince tekrar gündeme gelmiş gibi.
  • 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.

    • “MacPaint görselleri 576 x 720 piksel çözünürlükte sabit bir formattır” deniyor; gerçekten sabit format mıydı?
      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-...

    • Retina ekranda piksel düzeyinde dithering yapmak epey kendine özgü.
      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

    • Kaydırırken README’deki görseller kahverengiye dönüyor.
  • 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ı?

    • Bir ölçüde evet; ama deponun ilk commit’i 15 yıl önce, yani habere yetişsin diye aceleyle yapılmış değil.
    • Evet, bu algoritmayı o icat etti.
      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.