Skoro Xorcerer już wrzucił menu swojego programu do wątku o Eterze, to zainicjuję osobny wątek na ten temat. Nazwa programu "Xor Paint" jest tylko robocza i zaproponowałem ją, żeby jakoś o tym programie rozmawiać, ale miałem okazję widzieć co nieco w akcji i powiem tak - takiego edytora grafiki na ST/STE jeszcze nie było. Jaram się, żeby powstał.
Za jakieś 70 minut youtube skończy przetwarzać sesję z airbrushem. Nie wiem nic na temat wyjątkowości i szczerze nic mnie ona nie obchodzi. Napisałem to dla swojej radości i tak z tym dalej pracuję.
@xorcerer Jakby co, nie pytałem złośliwie, itp. Po prostu zaintrygowało mnie to, co Kaz napisał: "takiego edytora grafiki na ST/STE jeszcze nie było. Jaram się, żeby powstał." ...a że nie bardzo się znam na tej platformie sprzętowej, to stąd mój post.
Airbrush w 6 wariantach i linie są gotowe od 30 lat.
Wczoraj wreszcie przypomniałem sobie o co chodzi w kawałku kodu który podmienia aktywny tryb malowania, oraz wreszcie zmieniłem etykiety w kodzie z MODIE0...4 na coś co ludzki brain procesor trochę lepiej dekoduje.
No i praktycznie niemal całość najgłupiej napisanej części kodu czyli pętli głównej już mam rozkminione i obkomentowane.
RECOIL prawidłowo wszystko pokazuje, więc procka zapisu też działa prawidłowo :D. W przypadku PI1 to oczywiście prościzna, ale jeżeli by Ci się chciało jeszcze dodać dwa popularne formaty: PC1 (DEGAS Elite, skompresowany PI1) oraz CA1 (Crack Art, skompresowany) to będę szalenie wdzięczny, bo by ułatwiło wymienność danych.
Dzięki Miszy mam już gotowe źródła, CA_DECOMPRESS już jest wbite w mój program, compress może zrobię dziś a może za tydzień ale będzie. Na pewno będzie też IFF bo ja z kolei tego potrzebuję do komunikacji z Brilliance na Amidze. Czytać IFFy to już od 30 lat czyta, takie które wypluwa z siebie Deluxe Paint ST (ździebko się różnią od takich amigowych), jakiś prosty zapis nawet bez kompresji byłby w deseczkę. Najważniejsze dla mnie z dzisiejszego porannego posiedzenia jest to, że znalazłem głupi błąd przez który nie zadziałał mi nowy ficzer tzn zapis i odczyt z plików samych palet 16 kolorowych i całego zestawu 256 czyli 16 palet 16to kolorowych. Dzisiaj to będzie działać.
Myślę, że trzeba będzie oddzielić funkcjonalność konwersji między różnymi typami obrazków a resztą programu, bo dowolny algorytm kompresji słownikowej nadmucha samą część poświęconą wejściu/wyjściu. Do tego jeszcze GIF ma kilka różnych wersji, jedna bardziej pokręcona od drugiej. No, thank you.
Bardzo dobrym wzorem takiego rozdziału na Amidze jest Art Department Pro (w skrócie ADPro), pierwszy program który otworzył mi oczy na to, że pixel painter naprawdę nie musi wczytywać wszystkiego co się rusza. A do tego edytowanie i praca z animacjami nie polega na robieniu kolejnych egzotycznych formatów, których nic poza jednym programem nie czyta (patrz CyberPaint i format .seq)
Pracuje się na sekwencjach obrazów w najprostszych możliwych formatach, z najprostszymi i najszybszymi możliwymi algorytmami kompresji albo w ogóle bez kompresji. GIF na Atari z 8mhz m68k (de)kompresuje się bardzo powoli i do takiego celu się nie nadaje. W ogóle używanie go na Atari 8mhz to pomyłka. BMP, TGA, PNG bez żadnej kompresji - bardzo proszę, no problem.
To była wielka nauka która wypłynęła z używania ADPro i Lightwave.
Krótki przegląd formatów zapisu współczesnych programów do pixelart'u: Multipaint, PyDPaint, DPaint-js uruchomiony z localhost'a, Pixelorama. Wszystkie mają jeden wspólny format: PNG, 256-kolorowy niezależnie od platformy na którą ma być eksport i niezależnie od ilości wykorzystanych kolorów. Co jest słabe, bo potem importowanie na 16-bitowej czy nawet 8-bitowej platformie wiąże się ze stosunkowo długotrwałym i zupełnie niepotrzebnym tworzeniem histogramu wykorzystanych kolorów, próbą statystycznego odtworzenia palety z którą to robiliśmy, a potem jeszcze redukcją 256->16 kolorów i ditheringiem, który potencjalnie może obrazek zwyczajnie popsuć jakimiś egzotycznymi pixelami (zwłaszcza jak się stosuje dithering Floyd'a-Steinberga). Zważywszy na to, że przecież niby mają z siebie wypluwać coś, co powinno dać się wczytać z marszu na starej platformie, to słaby żart jest.