70
« Last post by Tuby128 on 2023.November.26. 16:28:11 »
Kiderült, hogy nem azért sárga. Azért volt sárga, mert elrontottam a PC-re C-ben írt kép konverter programot.
A hétvégén kicsit programozgattam. Találtam egy képet a neten, ami 24 bites színmélységű, és gondoltam átkonvertálom. Először borzasztó lett (lásd csatolmány). Ennek az az oka, hogy ahol 24 biten színátmenet van, ott a 8 bitesre levágás miatt sima egyszínűt ad.
Ekkor kezdtem keresgélni, hogy milyen matematikai megoldással lehet "dithering"-ezni. Kétféle megoldás van, az egyik a 2x2 vagy 4x4-es mátrix alapú (mint kiderült nekem nem jó, mert sormintát hagy a képen), vagy pedig a Floyd-Steinberg eljárással, amit szerintem mindenki ismer.
Már majdnem elkezdtem írni a programot hozzá, amikor kiderült, hogy ha Photoshop megkapja az "indexelt színlistát", melyet az EP tud, akkor ő is elő tudja állítani a ditherelt képet.
Elkezdtem kézzel felvenni az EP színeket a phtoshop-ba, majd a 19. szín után (237 van még hátra) rájöttam, hogy az úgyis egy fájlba menti, megnézem a formátumát. Kiderült hogy nagyon egyszerű, mert egy indexelt színhez 3 darab Byte tartozik (piros-zöld-kék), majd a lista legvégén megadja hogy hány valid (használt) szín van. Írtam rá egy kis programocskát, ami létrehozta az EP 256 színét.
Ezután a 320x240-es (lekicsínyített, de továbbra is 24bites) képre elkészítettem a dither-elt változatot. Ezt utána betöltöttem a módosított EP emulátorba.
Kicsit változtatni kellett a Basic betöltőmön, mert a kép 320*240*1byte= 76800 Byte = 75kB, ami már nem fér el 4db "video" lapon, a basic betöltőm nem állt készen a 5. 16kB lapra. De pár órás hibakeresés után megcsináltam.
Rendszer:
Enterprise Emulátor 256 kB (F0-FF szegmensek) - RAM amely a NICK 2.0-nak teljes mértékben címezhető a Graphics hires 4 képpont méretű, de 256 színű módban.
A képet az F4 szegmenstől F7 szegmensekig tároltam, majd amikor növeltem a függőleges megjelenítést, akkor az F8 szegmenset is felhasználtam.
Alapvetően a rendszer az 1. szabad szegmenst használja (az én esetemben a F0) ezért azt nem is bántottam.
A video memóriába sem akartam írni (FC-FF), mert azt felül szokták írni a grafikai rutinok.
Azt csinálja a Basic betötőm, hogy nyit egy video lapot a képernyőre (mint helyfoglalót, amit nem változtat meg a rendszer) majd ennek módosítja a sorparaméter tábláját.
Ennek előnye, ha bármi gond van, akkro nyomok egy SHIFT+F5-öt és visszakapom a szöveges módot, látom a hibaüzeneteket stb.