eXec.plMAGAZYN UŻYTKOWNIKÓW KOMPUTERÓW AMIGA
MAGAZYN UŻYTKOWNIKÓW KOMPUTERÓW AMIGA

niedziela, 17. października, 2021, 20:20

Amiga forum / Grafika i CAD / Edytor ikon 32-bit dla AmigaOS4 - postępy prac :)

Czytasz wątek: Edytor ikon 32-bit dla AmigaOS4 - postępy prac :)

hextreme
Nieaktywny użytkownik starego forum

Edytor ikon 32-bit dla AmigaOS4 - postępy prac ... wysłany: 2010-10-31 08:12

Witam!

Tutaj będę zamieszczał postępy prac nad edytorem ikon 32-bit dla AmigaOS4, dzięki czemu przyszli użytkownicy będą mogli przyjrzeć się jak program będzie wyglądał i ewentualnie coś zrewidować bądź skorygowac. Teraz jest długi weekend i mam dużo czasu, tak że będę starał sie zamieszczać jak najwięcej informacji.

Więc pierwsza wiadomośc to taka, że postanowiłem zrobić z tego programu taki mini-program graficzny. Bazuję na projekcie, który zacząłem już wiele miesięcy temu o roboczej nazwie "ColorMe". Jest to engine graficzny w rodzaju Deluxe Paint mojego autorstwa. Jeszcze dzisiaj postaram się umieścić zrzut ekranu przedstawiający ten engine w akcji i może tez kod źródłowy w C++. Jego cechami są:

- Otwieranie własnego ekranu o dowolnej rozdzielczości
- Praca na wielu okienkach

Zatem pewne postulaty dotyczące graficznego interfejsu użytkownika, które tutaj padły (przy komentarzach do newsa o przejęciu przeze mnie projektu) zostaną spełnione! Teraz każdy będzie mógł usytuować okienko z palętą tam gdzie mu wygodnie. To samo dotyczy okienka z edycją obrazka oraz paska narzędziowego! No i będzie można edytować kilka obrazków jednocześnie.

Odpowiedz

mufa
Nieaktywny użytkownik starego forum

Edytor ikon 32-bit dla AmigaOS4 - postępy prac ... wysłany: 2010-10-31 10:31

@hextreme
Witam!

Tutaj będę zamieszczał postępy prac nad edytorem ikon 32-bit dla AmigaOS4, dzięki czemu przyszli użytkownicy będą mogli przyjrzeć się jak program będzie wyglądał i ewentualnie coś zrewidować bądź skorygowac. Teraz jest długi weekend i mam dużo czasu, tak że będę starał sie zamieszczać jak najwięcej informacji.

Więc pierwsza wiadomośc to taka, że postanowiłem zrobić z tego programu taki mini-program graficzny. Bazuję na projekcie, który zacząłem już wiele miesięcy temu o roboczej nazwie "ColorMe". Jest to engine graficzny w rodzaju Deluxe Paint mojego autorstwa. Jeszcze dzisiaj postaram się umieścić zrzut ekranu przedstawiający ten engine w akcji i może tez kod źródłowy w C++. Jego cechami są:

- Otwieranie własnego ekranu o dowolnej rozdzielczości
- Praca na wielu okienkach

Zatem pewne postulaty dotyczące graficznego interfejsu użytkownika, które tutaj padły (przy komentarzach do newsa o przejęciu przeze mnie projektu) zostaną spełnione! Teraz każdy będzie mógł usytuować okienko z palętą tam gdzie mu wygodnie. To samo dotyczy okienka z edycją obrazka oraz paska narzędziowego! No i będzie można edytować kilka obrazków jednocześnie.




Jesli będzie to już w stadium używalnym, podrzuć do testów, zobaczymy czy działa dobrze na innym sprzęcie niż klasyk. No chyba że masz już jakiś swoich betatesterów.

Odpowiedz

konrad
Nieaktywny użytkownik starego forum

Edytor ikon 32-bit dla AmigaOS4 - postępy prac ... wysłany: 2010-10-31 11:24

@mufa
Jesli będzie to już w stadium używalnym, podrzuć do testów




Ja mogę potestować nawet w nieużywalnym stadium, np. pewne moduły. Napisz jednak jakąś Roadmape, czyli co w jakiej kolejności planujesz implementować.

Odpowiedz

hextreme
Nieaktywny użytkownik starego forum

Edytor ikon 32-bit dla AmigaOS4 - postępy prac ... wysłany: 2010-10-31 16:57

@mufa
Jesli będzie to już w stadium używalnym, podrzuć do testów, zobaczymy czy działa dobrze na innym sprzęcie niż klasyk. No chyba że masz już jakiś swoich betatesterów.



Nie ma sprawy, jestem obecnie w posiadaniu SAM440ep (jeśli nie pamiętasz, to właśnie ja jestem szczęśliwcem któremu pożyczono ten komputer) i właśnie na nim piszę ten program (oraz bieżący list) więc mam możliwość przetestowania mojego programu na AmigaOS4.1. Mimo to bardzo chętnie skorzystam z pomocy betatesterów.

Bardzo dużo dzisiaj napisałem, głównie przepisywałem na czysto wspomniany silnik edytora graficznego. Musiałem troszkę rzeczy pozmieniać - m.in tamten edytor pracował tylko na obrazach 8-bitowych, teraz z powodzeniem można edytować obrazki 32-bitowe. Obrazek to dowolna bitmapa zatem będzie można z powodzeniem ładować też do niego ikony jak i zwykłe obrazy rozpoznawane przez "datatypy".

Oprócz tego kompletnie przepisałem procedury skalujące i wyświetlające obraz do edycji - teraz są bardzo szybkie i sprawne.
Wybrałem co ładnieszy obrazek, żeby pokazać przykład działania programu:

Admin: obrazek usuniety - strona minniatian.republika.pl zainfekowana

Okno "Image Preview" zawiera podgląd całego obrazu, a w "Edit Window" będzie możliwość edycji obrazka (widać jego ośmiokrotne powiększenie). W sumie już teraz mógłbym zamieścić program (można w nim ładować dowolny obrazek), ale chyba jeszcze trochę popracuję i dziś pod wieczór jak mi się uda to dam już program do testów.

Odpowiedz

hextreme
Nieaktywny użytkownik starego forum

Re:Edytor ikon 32-bit dla AmigaOS4 - postępy pr... wysłany: 2010-11-12 19:04

Dzisiaj troszkę pracowałem nad programem. Tutaj można obejrzeć zrzut ekranu.

Jak widać okienko jest podzielone na trzy obszary (są to gadżety typu space.gadget). Na górze jest powiększony obraz ikonki w celach edycyjnych, u dołu mamy podgląd dwóch stanów ikony. Okienko może być swobodnie skalowane.

Piszę program w C++ i staram się dobrze zaimplementować przeróżne funkcje programu m.in. oddzieliłem środowisko pracy (Environment) od interfejsu użytkownika (GUI).

Oto jak wygląda plan programu i jego poszczególne moduły:
[list]Na górze jest środowisko pracy (Environment). Obejmuje ono wszystkie składniki programu. Środowisko należy najpierw przygotować do pracy za pomocą funkcji SetupEnvironment().[/list][list]Środowisko korzysta z interfejsu użytkownika (GUI) do komunikacji z użytkownikiem. Najpierw je tworzy Create(), a następnie może czekać na wiadomości WaitInput() lub pobierać wiadomości HandleInput() z interfejsu użytkownika. Następnie we własnym zakresie interpretuje przychodzące wiadomości.[/list][list]Środowisko obsługuje ładowanie, edycję i zapis ikon za pomocą projektów. Load() i Unload() ładuje i zwalnia ikony. Dane graficzne ikony są przekazywane interfejsowi użytkownika za pomocą pola h_Data struktury Hook i odpowiednich procedur typu Hook, które generują obrazki (zarówno do podglądu jak i edycji).[/list]
To co planuję teraz w kolejności dodać to:
[list]Panel z narzędziami oraz paletę kolorów - wszystko w obrębie interfejsu użytkownika (GUI). Środowisko będzie interpretowało wiadomości przychodzące od interfejsu tak, że np. będzie zmieniało bieżący kolor bądź tryb rysowania. Następnie odpowiednia procedura typu Hook będzie zajmować się odzwierciedlaniem zmian jakie użytkownik wprowadza do edytowanej ikony. Na początek będą dostępne tylko podstawowe tryby - rysowanie poszczególnych piskeli, linii itp.[/list][list]Poza tym wprowadzę menu, również na takiej samej zasadzie co gadżety, czyli w obrębie interfejsu użytkownika. Menu będzie udostępniało funkcje z rodzaju ładowanie i zapis ikon, zmiany typu ikony itd.[/list][list]Kolejną rzeczą jest obsługa brushów.Będzie to po prostu jedno z narzędzi edycyjnych.[/list]
Będę starał się pisać tak program, by łatwo można było go przekształcić również w narzędzie do edycji dowolnych obrazów.

Jeśli macie jakieś uwagi to śmiało piszcie.

Odpowiedz

konrad
Nieaktywny użytkownik starego forum

Re:Edytor ikon 32-bit dla AmigaOS4 - postępy pr... wysłany: 2010-11-12 19:28

@hextreme
Środowisko korzysta z interfejsu użytkownika (GUI) do komunikacji z użytkownikiem.




GUI fajna sprawa, ale jeśli widziałeś profesjonalnego grafika, który pracuje np. na takim Photoshopie to wygląda to tak, że jedną ręką trzyma pióro tabletu (rzadko myszkę), a druga jest na klawiaturze i służy do przełączanie opcji i ich ustawień. Co ciekawe programy typu Photoshop chociaż posiadają toolbar narzędziowy to uniemożliwiają uzyskanie wszystkich opcji z poziomu GUI. Na przykład proste narzędzie "Brush tool" (b) umożliwiające rysowanie dowolnych kształtów wybranym pędzlem daje się łatwo modyfikować klawiszem shift umożliwiając rysowanie linii poziomych i pionowych oraz linii łamanych otwartych i zamkniętych. W GUI Photoshopa jest to jednak tylko jedna ikona.

Podsumowując. Opcje powinny się dać dostosować z poziomu klawiatury. Na końcu można je "ułożyć" w domyślny toolbar lub dać użytkownikowi możliwość stworzenia własnego toolbaru z dostępnych opcji lub dać kilka zdefiniowanych toolbarów przypominających: photoshopa, tvpainta czy deluxepainta do wyboru. Bez dobrego i przemyślanego wsparcia ze strony klawiatury rysowania nie będzie. Oczywiście nadal polecam wzorować się na najlepszym programie na rynku czyli Photoshopie.

Odpowiedz

hextreme
Nieaktywny użytkownik starego forum

Re:Edytor ikon 32-bit dla AmigaOS4 - postępy pr... wysłany: 2010-11-12 21:43

Chodzi Ci o zwyczajne skróty klawiszowe? Bez problemu coś takiego mogę wprowadzić, w końcu ReAction je obsługuje. Dostosowywanie toolbaru może być zrealizowane za pomocą wprowadzenia dodatkowej konfiguracji. Jeśli jednak chodzi o zrobienie z tego edytora ikon programu typu Photoshop to należy troszkę poczekać, aż opublikuję ten program w postaci jaką zakłada bounty i dopiero wtedy po konsultacji z innymi programistami mógłbym podjąć się czegoś takiego.

Obecnie GUI nie musi być sztywne. Funkcja Create() może pobierać dowolne parametry (np. konfigurację). Co więcej mogę wprowadzić funkcję Modify(), która zmienia layout okienka na bieżąco według uznania użytkownika, dzięki zastosowaniu tzw. Dynamic Layout. I wtedy np. toolbar mógłby zawierać tylko wybrane przez użytkownika elementy.

Środowisko nie dba o to na jakiej zasadzie jest zbudowany interfejs użytkownika, wywołuje tylko funkcję Create() do stworzenia GUI i WaitInput()/HandleInput() do pobierania wiadomości. Rolą GUI jest otwarcie okienek, gadżetów itp., a w jaki sposób to robi jest już niewidoczne dla Środowiska. WaitInput() i HandleInput() może z powodzeniem czekać na dowolny skrót klawiszowy, następnie poinformować o tym Środowisko, by to podjęło właściwe akcje, np. zmienić tryb rysowania, bądź zmienić położenie gadżetów w Toolbarze i wywołać funkcję Modify(), by ta zmieniła układ gadżetów.

Póki co nie ma obsługi wielu okienek ale tak jak już napisałem, GUI jest przezroczyste, tzn. że funkcja Create() mogłaby wiele takich okienek pootwierać. Jest tu swoboda implementacji.

Odpowiedz

konrad
Nieaktywny użytkownik starego forum

Re:Edytor ikon 32-bit dla AmigaOS4 - postępy pr... wysłany: 2010-11-12 22:34

@hextreme
Chodzi Ci o zwyczajne skróty klawiszowe?




Nie wiem czy zwyczajne, ale tak, chodziło o skróty klawiszowe.



@
Bez problemu coś takiego mogę wprowadzić, w końcu ReAction je obsługuje.



To wiem, tylko żebyś pamiętał o tym implementując kolejne funkcje.



@
Jeśli jednak chodzi o zrobienie z tego edytora ikon programu typu Photoshop to należy troszkę poczekać



To nawet nie o to chodzi, bo sam Photoshopa nie zrobisz. Tylko, żebyś czerpał z niego dobre wzorce. Podobnie jak zrobił to autor PageStreama, który w ogóle nie ukrywał, że inspirował się programami PageMaker i QuarkXPress. Zamiast wymyślać coś swojego i niekoniecznie sprawdzonego wziął dwa najlepsze wówczas programy do składu na rynku i brał z nich to co najlepsze i implementował w PageStreamie. Wyszło super, a program do dzisiaj daje radę.

Odpowiedz

Przemek
Nieaktywny użytkownik starego forum

Re:Edytor ikon 32-bit dla AmigaOS4 - postępy pr... wysłany: 2010-11-12 23:47

[i]Jeśli jednak chodzi o zrobienie z tego edytora ikon programu typu Photoshop to należy troszkę poczekać, aż opublikuję ten program w postaci jaką zakłada bounty i dopiero wtedy po konsultacji z innymi programistami mógłbym podjąć się czegoś takiego. [/i]

Właśnie o czymś takim myślałem. Najpierw etap edytora ikon a potem, jeżeli miałbyś motywację, dodawać nowe funkcje programu graficznego.
Fajnie, że już na tym etapie o tym myślisz Jeżeli co jakiś czas udałoby Ci się poszerzać funkcjonalność, to po pewnym czasie może urosnąć niezły kombajn. Trzymam kciuki. Bardzo brakuje mi fajnego programu graficznego. Wszystkie znane mi tego typu programy dla Amigi, pokazują swoją archaiczność pod OS4.1.

No i jeszcze jedna mała uwaga. Jeżeli to nie problem, poświęć co jakiś czas kilka minut na mały opis postępu prac. Myślę tu o zachodnich portalach, nie tylko tutaj. Wszyscy to bardzo lubią a zachodni amigowcy mają też grubsze portfele.



Odpowiedz

hextreme
Nieaktywny użytkownik starego forum

Re:Edytor ikon 32-bit dla AmigaOS4 - postępy pr... wysłany: 2010-11-13 20:57

Można już rysować ikonki - póki co dostepny jest tylko zwykły ołówek (czarny) Wszystko działa bardzo fajnie, myślę, że dobrze zaprojektowałem program bo teraz rozwija się całkiem dynamicznie, a i działa bardzo stabilnie. Teraz jest kwestia dodania podstawowych narzędzi do programu. Jak to już będzie gotowe to postaram się jutro zamieścić linka, żeby chętni mogli przyjrzeć się programowi i go przetestować.

Odpowiedz

hextreme
Nieaktywny użytkownik starego forum

Re:Edytor ikon 32-bit dla AmigaOS4 - postępy pr... wysłany: 2010-11-13 21:13

@Przemek
Bardzo brakuje mi fajnego programu graficznego. Wszystkie znane mi tego typu programy dla Amigi, pokazują swoją archaiczność pod OS4.1.



To jest spowodowane tym, że te programy pracowały na 2 do 256 kolorów, a w AmigaOS4.1 na ekranie 32-bitowym wyglądają już po prostu nieatrakcyjnie. Program, który piszę korzysta z nowoczesnych rozwiązań z dziedziny interfejsu użytkownika - ReAction dzięki czemu wygląda już całkiem na czasie. Jednak na efekty i filtry znane z programów typu Photogenics jest jeszcze za wcześnie. Postaram się mimo to zrobić "furtkę" dla takiego typu rozwiązań. Pamiętajcie, ze to jeden z moich pierwszych programów tego typu ogólnie na komputery i nadal się uczę

Odpowiedz

konrad
Nieaktywny użytkownik starego forum

Re:Edytor ikon 32-bit dla AmigaOS4 - postępy pr... wysłany: 2010-11-13 22:57

@hextreme
póki co dostepny jest tylko zwykły ołówek (czarny)




1-bitowy pędzel?

Odpowiedz

hextreme
Nieaktywny użytkownik starego forum

Re:Edytor ikon 32-bit dla AmigaOS4 - postępy pr... wysłany: 2010-11-20 18:33

@konrad
1-bitowy pędzel?



Kolego, troszkę źle chyba rozumiesz założenia projektu? Czy Ty naprawdę chcesz, żebym brał za wzór zaawansowane funkcje programu typu Photoshop do prostego edytora ikonek? Ja rozumiem, że jesteś z nim obeznany, ale tak się złożyło, że ja nie jestem, dla mnie wzorem jest póki co program typu Deluxe Paint. Jeśli chcesz programu pokroju Photoshopa to, czy masz może do dyspozycji jakąś bibliotekę (na Amigę), która dostarcza filtrów i efektów używanych w obróbce grafiki? No bo ja obecnie staram się pisać własne procedury bazujące na funkcjach do obróbki grafiki udostępnionych przez np. graphics.library, tj. do linii używam Move() i Draw(), do wypełnionych okręgów np. AreaEllipse(), obecnie mam kłopoty z funkcją Flood(), która to wypełnia zadany obszar. Te funkcje są używane też przez oryginalny edytor ikon i moim zadaniem jest tę funkcjonalność skopiować. Proszę Cię, zapytaj się na Amigans.net (wszak to bratni portal, poza tym założyłem niedawno tam konto) czy oni chcą takiego Photoshopa, ponieważ ja mam pewne obawy. Zobaczmy jak oni to widzą. Póki co zrealizuję projekt w obecnej postaci, bo ta postać ma szansę realizacji w rozsądnym czasie. Poza tym takiego Deluxe Painta na AmigaOS4.x brakuje, Grafx2 ma dość toporne GUI i pracuje w SDLu.

Odpowiedz

konrad
Nieaktywny użytkownik starego forum

Re:Edytor ikon 32-bit dla AmigaOS4 - postępy pr... wysłany: 2010-11-20 19:43

@hextreme
Kolego, troszkę źle chyba rozumiesz założenia projektu? Czy Ty naprawdę chcesz, żebym brał za wzór zaawansowane funkcje programu typu Photoshop do prostego edytora ikonek?




Miękki pędzel to zaawansowana funkcja dla 32-bitowego edytora ikon? Moim zdaniem jest to podstawa, żeby narysować ikonkę 32-bit.



@
Jeśli chcesz programu pokroju Photoshopa to, czy masz może do dyspozycji jakąś bibliotekę (na Amigę), która dostarcza filtrów i efektów używanych w obróbce grafiki?



Gotowej biblioteki nie znam, ale podstawowe funkcje obróbki obrazu tego typu programów opierają się na znanych i opisanych algorytmach. Wszystkie są dostępne w otwartych źródłach wielu programów, np. GIMPa.



@
Te funkcje są używane też przez oryginalny edytor ikon i moim zadaniem jest tę funkcjonalność skopiować.



Problem z oryginalnym edytorem jest taki, że nie nadaje się do narysowania ikony na poziomie graficznym takim jak masz w systemie. Chociaż może ja niepotrzebnie zakładam, że edytor ikon ma służyć do rysowania ikon. Może ludziom wystarczy, że do gotowej ikony będą mogli coś tam sobie dorysować.



@
Póki co zrealizuję projekt w obecnej postaci, bo ta postać ma szansę realizacji w rozsądnym czasie. Poza tym takiego Deluxe Painta na AmigaOS4.x brakuje, Grafx2 ma dość toporne GUI i pracuje w SDLu.



Rób jak uważasz, bo to Twój projekt. Jak będziesz chciał coś zrobić ambitniejszego to wrócimy do rozmowy. Odnośnie tego projektu nie będę się już wypowiadał, bo prosty edytor grafiki 8-bitowej mnie w ogóle nie interesuje.

Odpowiedz

hextreme
Nieaktywny użytkownik starego forum

Re:Edytor ikon 32-bit dla AmigaOS4 - postępy pr... wysłany: 2010-11-29 21:15

Tutaj najnowszy zrzut ekranu mojego edytora ikon. Program jest już w dosyć dojrzałej formie. Widoczny jest interfejs użytkownika (prosty, ale ładny i czytelny), w którego skład wchodzą pasek z narzędziami, paleta kolorów oraz pole do edycji z suwakami. Na załączonym zrzucie w polu edycji widać obrazek testowy (nie ikonkę).

W przeciwieństwie do pierwszego zrzutu ekranu jaki zamieściłem teraz program jest w pełni funkcjonalny (póki co nie działają tylko suwaki), to znaczy z paska narzędziowego można wybierać tryb rysowania (póki co tylko linia kropkowana, linia ciągła, linia prosta, okrąg i koło), z palety wybrać kolor i nanosić zmiany na obrazek. Do tego działa guzik "undo" - póki co można kasować tylko ostatnią zmianę. Działa też przybliżanie i oddalanie obrazka. Wszystko działa bardzo sprawnie i myślę, że zgodnie z zaleceniami pisania pod AmigaOS4.x (opieram się na dokumentacji). Wprowadzanie kolejnych narzędzi jest kwestią czasu.

Funkcja wypełniania obszarów ([i]flood[/i]) nie pojawi się zważywszy, że nie działa na bitmapach typu chunky. Czeka mnie jeszcze trochę pracy, ale program naprawdę nabiera już tempa i zyskał bardzo ładny wygląd (ReAction naprawdę bardzo ładnie się prezentuje i oferuje moc możliwości).

Działający program do testów opublikuję w niedługim czasie jak tylko sprawię, żeby suwaki działały oraz dołączę choć podstawowe menu (wczytywanie i zapis obrazka bądź ikony). Mam nadzieję, że się spodoba. Myślę, że tak bo wygląda już bardzo nowocześnie, a funkcje są myślę, że dobrze napisane.

Proszę się nie przejmować faktem, że obecnie program posiada głównie funkcje znane z programów typu Paint, a nie posiada zaawansowanych funkcji z edytorów grafiki 32-bitowej. Stanowi za to bardzo dobrą podstawę do napisania porządnego narzędzia do obróbki grafiki. Póki co stawiam sobie za zadanie prostą edycję ikon, ale z pełną obsługa ikon 32-bitowych!

Admin: obrazek usuniety - strona minniatian.republika.pl zainfekowana

Odpowiedz

1 2 3 4 5 6 następna »

AmigaOS.pl