c64pixels.com bende açılmadı nedense.
Alternatif olarak JPG'den üretemez miyiz diye baktım.
Bir web sitesi buldum:
https://alex.kazik.de/2/c64-converter/ ama bu işi otomatikleştiremez miyiz sorusuyla uğraşırken henüz bakamadım.
Şuradaki Java programını:
http://csdb.dk/release/?id=77585 Linux'ta bir bash script içinde kullanmaya karar verdim.
Program,
java -cp bin Png2Prg PNGdosyaAdi C64PRGdosyaAdi 0
şeklinde kullanılıyormuş. Yalnız anlamsız bir şekilde 4 renkli PNG istiyor. Ama denemelerde 3 renkten fazlasında saçmaladı. Oluşturduğu dosyanın içine baktım. 8192'den itibaren bitmap, 16384'ten itibaren de ekran + 24 byte boş + renk ram'ı verisi var.
Koala Painter formatı ise $6000'dan itibaren 8000 byte bitmap, 1000 byte ekran, 1000 byte renk, ve 1 byte arkaplan rengi istiyor. En baştaki 2 byte'lık yükleme adresiyle birlikte toplam 10003 byte.
Linux'taki PNM araç gereçleriyle JPG'yi şu şekilde 320x200x4 PNG'ye dönüştürebiliyoruz.
jpegtopnm resim.jpg |ppmnorm -bvalue 48 -wvalue 248|pnmscale -nomix -width 320 -height 200 |ppmquant 3|pnmtopng > resim.png
Burada,
ppmnorm ile siyahları daha siyah, beyazları daha beyaz yapıyoruz.
pnmscale'deki -nomix, dithering'i iptal ediyor.
ppmquant ile renk sınırlaması getiriyoruz.
Aslında ppmquant, bir renk haritası da kabul ediyor. -mapfile filanca.pnm şeklinde...
http://www.pepto.de/projects/colorvic/ adresinde yer alan Pepto'nun renk paletini vb. denedim, ama daha iyi bir sonuç vermedi.
Oluşturulan PRG'den koala formatına çevirme işini ise php ile yaptırdım, belki web sitesine koyarız diye.
Şimdilik durum şu:
Tek dosya için olan sürümü:
#!/bin/bash
#
# jpg2koala
# 2016.06.09
#
adpng=`basename "$1"|sed "s/\.jpg/.png/g;s/\.jpeg/.png/g;s/\.JPG/.png/g;s/\.JPEG/.png/g;"`
adkoala=`echo "$adpng"|sed "s/\.png/.gg/g;"`
jpegtopnm "$1"|ppmnorm -bvalue 48 -wvalue 248 |pnmscale -nomix -width 320 -height 200 |ppmquant 3|pnmtopng > "/tmp/$adpng"
java -cp /600/test/koala/bin Png2Prg "/tmp/$adpng" "/tmp/$adpng.prg" 0
php prg2koala.php "/tmp/$adpng.prg" > "$adkoala"
İlgili prg2koala.php dosyası ise:
<?php
// .prg'den C64 Koala Painter dosyasi uretir
$dosya=$_SERVER['argv'][1];
if ( ! file_exists($dosya) ) {
echo "Dosya yok!\n\n";
exit;
}
$ds=fopen($dosya,"r");
$bos=fread($ds,6145);
$arkaplan=$bos[24];
$ekran=fread($ds,8000);
$bos=fread($ds,192);
$renk1=fread($ds,1000);
$bos=fread($ds,24);
$renk2=fread($ds,1000);
echo chr(0).chr(0x60);
echo $ekran;
echo $renk1;
echo $renk2;
echo $arkaplan;
fclose($ds);
?>
Bu dosyaları chmod 755 ile çalıştırılabilir yapmak ve PATH üzerinde bir yerlere koymak da gerek tabii.
Bir klasör içindeki tüm .jpg'lere uygulamak içinse:
ls *.jpg|while read jp;do jpgtokoala "$jp";done
komutunu, ilgili klasörün içinde çalıştırmak yeterli..
Haliyle ilk denemeyi, Alper'in karikatürleriyle yapmış olabilirim

Ekteki .zip'li dosya içindeki .gg sonekli olanlar Koala Painter formatında (denemedim, ama umuyorum öyleler), .prg'ler ise çalıştırılabilir C64 dosyası biçiminde. Emülatörde veya C64'te çalıştırılabilir.
Ne yazık ki, 3 renkle sonuç pek iç açıcı değil. Belki bir yerlerde daha iyisi vardır, ya da yazmak isteyen çıkabilir... Umarım karikatürlerini ne hale getirmişim diye kızmaz... Yine de, Alper Ocak'ın karikatürlerini C64'de görmek hoş oldu
