CODEDISKUSSION - JImP


  • Mod

    Hi!

    Noesis/Doofie ist so nett gewesen und hat eine frühe Alpha-Version meines Bildverarbeitungsprogramms auf seine Homepage gestellt. Diese Gelegenheit möchte ich für eine Godediskussion nutzen!

    Ihr findet das Programm auf Doofies Homepage (nur zu erreichen, wenn Doofies Server an ist). In der Zip-Datei ist der komplette Quellcode und kompilierte Dateien enthalten. (...und etwas Müll, weil ich wiedermal zu faul war! 🙄) Das Programm läßt sich nicht aus der zip-Datei heraus starten. Mit einer Jar-Datei geht es auch nicht. Ihr müßt die zip-Datei entpacken. Wenn bei euch Java installiert ist und das bin-Verzeichnis im PATH angegeben ist, dann kann man das Programm mit der Bat-Datei starten. Ansonsten ist "start.JImP" die Hauptklasse!

    Die Menupunkte in dem Programm funktionieren nur, wenn ein Bild geladen ist und aktiviert wurde. Dies kann z.B. durch kurzes verschieben des Bildes geschehen. Weiterhin ist die Speichern-Funktion bisher nur ein Dummy! (...Alpha halt! 🙄)

    Nun zum Hauptpunkt: Mich interessiert eure Meinung zum Code und zum ausführbaren Programm. Auch Fragen der Art : "Warum hast du...?" sind erwünscht. Kritik ist auch erwünscht! Mit Sicherheit kann der eine oder andere auch gut davon profitieren, wenn er sich den Code etwas genauer anschaut. ...auf Kommentare im Code müßt ihr aber leider größtenteils verzichten! 😞 :p

    EDIT : Es wird Java 1.4 oder höher benötigt!

    [ Dieser Beitrag wurde am 08.12.2002 um 01:56 Uhr von Gregor editiert. ]



  • Ihr findet das Programm auf Doofies Homepage

    Und wo da? Wie wärs mit einem direkten Link?


  • Mod

    Original erstellt von <Parry>:
    **
    Und wo da? Wie wärs mit einem direkten Link?**

    Ups! Sorry! Ich dachte, der Link ist so zentral auf der ersten Seite, dass man ihn gleich sieht! Link



  • Hi,

    funktioniert bei mir wunderbar. Nicht schlecht Herr Specht. Die Punkte unter "Verarbeiten" sind ja echt beeindruckend.

    Wie lang hast du dran gesessen?


  • Mod

    Original erstellt von Doktor Prokt:
    **
    Wie lang hast du dran gesessen?**

    Kann ich nicht genau sagen! Das Projekt existiert schon sehr lange. Vielleicht ein Jahr oder so! Ich programmiere daran aber nur sehr sehr selten herum. Das Programmieren hat sich zudem in letzter Zeit fast darauf beschränkt, das Programm umzubauen, also dem Programm eine neue Struktur zu geben. ...das läßt sich wohl auf ne Fehlplanung bzw. fehlende Planung am Anfang zurückführen!



  • Hm, du hast jeder GUI-Klasse ein EventHandler-Objekt gegeben. Damit scheint man ja das Problem lösen zu können, daß nur die Hauptfensterklasse das Interface ActionListener implementiert und auf die ActionEvents reagiert...

    aber wie definiert man in der Hauptklasse so ein EventHandler-Objekt und übergibt es den anderen?



  • Jo gefällt mir gut das Programm 🙂
    Leider kapier ich java noch nich so, um wirklich gute fragen zu stellen, aber ich denke ich find schn was, was ich nich so kapiere 🙄 😃

    PS: Wo auf dem Klassenfoto ist noesis/Doofie? 😃


  • Mod

    Hm, du hast jeder GUI-Klasse ein EventHandler-Objekt gegeben

    Ich habe nur ein EventHandler-Objekt. EventHandler ist bei mir als Singleton implementiert. Also etwa so :

    [java]
    public class EventHandler
    {
    private static EventHandler instance;
    private EventHandler ()
    {
    //...
    }

    public static EventHandler getInstance ()
    {
    if (instance == null) instance = new EventHandler ();
    return instance;
    }

    //...
    }[/code]

    Diese Klasse ist bei mir aber auch nur für einen Teil der Abarbeitung eines Events zuständig. Eigentlich implementieren die meisten Menus das interface ActionListener selber. Siehe Klassen: StandardMenu, FunctionalityMenu

    EDIT : Das EventHandler-Objekt wird also nicht an die anderen Klassen übergeben, sie holen es sich stattdessen selber mit der getInstance-Methode!

    [ Dieser Beitrag wurde am 08.12.2002 um 18:38 Uhr von Gregor editiert. ]


  • Mod

    Original erstellt von Griffin:
    **
    PS: Wo auf dem Klassenfoto ist noesis/Doofie? :D**

    Ich glaube: obere Reihe, dritter von Links. 😉



  • Interessantes Projekt 🙂
    Keine Lust das auf SourceForge oder so weiter zu entwickeln? Ich hätte auch Interesse daran (obwohl ich keine Kenntnisse in Grafik-Programmierung habe) 🙂


  • Mod

    Original erstellt von CengizS:
    **
    Keine Lust das auf SourceForge oder so weiter zu entwickeln? Ich hätte auch Interesse daran (obwohl ich keine Kenntnisse in Grafik-Programmierung habe) :)**

    Ich weiß nicht genau, wie das bei SourceForge funktioniert. Kannst du mich da mal genauer aufklären? Läuft das so ab, dass ich meinen Code da hochlade und dann kann jeder Ergänzungen machen?

    Prinzipiell hätte ich schon Lust zu sowas! ...gerade, weil ich ja schon ne Art Plugin-Schnittstelle habe, so dass man da relativ einfach Erweiterungen hinzufügen kann. Man kommt wahrscheinlich damit aus, die neuen Dateien eines Plugins in die entsprechenden Verzeichnisse zu kopieren. Am vorhandenen Code muss man nichts ändern! 🙂

    Allerdings möchte ich, bis ich mit sowas anfange, noch ein paar Dinge an dem Projekt in Ordnung bringen. Die Plugin-Schnittstelle geht bisher nur in eine Richtung. Das Programm weiß zwar, wie es ein Plugin laden und benutzen kann, ein Entwickler muss aber immernoch einen Großteil des Programms kennen, damit er ein gutes Plugin schreiben kann.

    Auf Deutsch : Jetzt noch nicht, aber ich habe bald Weihnachtsferien, in denen ich das Programm so in Ordnung bringen kann, dass es wirklich leicht zu erweitern ist. In nem Monat kommt das für mich also sehr in Frage! ...ich muss ja auch noch ne Menge kommentieren, sonst kann damit ja fast kein Mensch was anfangen! 😉

    [ Dieser Beitrag wurde am 09.12.2002 um 00:34 Uhr von Gregor editiert. ]



  • Original erstellt von Gregor:
    Ich weiß nicht genau, wie das bei SourceForge funktioniert. Kannst du mich da mal genauer aufklären? Läuft das so ab, dass ich meinen Code da hochlade und dann kann jeder Ergänzungen machen?

    Ja, du lädst Deine Sourcen per CVS hoch und alle Entwickler die von Dir dazu die Berechtigung dazu bekommen, können "commits" beisteuern und so das Programm weiterbauen... (Das ist aber keineswegs das einzige Feature das sf zu bieten hat!)
    edit: http statt https...

    [ Dieser Beitrag wurde am 09.12.2002 um 01:10 Uhr von nman editiert. ]


  • Mod

    @ nman : Danke! Ich werde mir das morgen oder nachher noch angucken!

    BTW : Was mich natürlich auch interessiert ist, ob ihr irgendwelche tollen Effekte in dem Programm findet, die ich noch nicht kenne! Ich liste schonmal die auf, die ich am coolsten finde:

    • Bei Bildern aus Mangas und Animes kommt folgendes ganz gut :

    1. Ableitung approximieren: Operator - Sobel, alle Drehungen, Intensität - Rot - Grün - Blau, beide Verknüpfungen - Maximum. Abschließend kann man das Bild noch invertieren.

    2. Ableitung approximieren: Operator - Sobel, Drehungen 0, 90, Intensität, Verknüpfung der Drehungen - Summe, andere Verknüpfung egal.

    • Bei Fotos im png-Format:

    1. Histogramm ausgleichen: globale Nachb*****aft

    2. Histogramm ausgleichen: Feste Nachb*****aft, euklidischer Abstand, Größe 15

    3. (dauert u.U. sehr lange) Histogramm ausgleichen: adaptive Nachb*****aft, Toleranz 10, Rand 4.

    • Bei allen Fotos:

    1. Weichzeichnen: Euklidischer Abstand, quadratisch abnehmend, Größe 15. Dann 2-3 mal: Histogramm ausgleichen: Feste Nachb*****aft, euklid., Größe 15.

    2. Weichzeichnen: Euklidischer Abstand, quadratisch abnehmend, Größe 15. Dann: Histogramm ausgleichen: adaptive Nachb*****aft, Toleranz 10, Rand 4.

    [ Dieser Beitrag wurde am 09.12.2002 um 02:45 Uhr von Gregor editiert. ]


  • Mod

    Es gibt jetzt übrigens JImP 0.11 (wie immer auf www.klasse-5b.at.tf) (Direktlink)

    Die Version ist ein bischen erweitert, es wurden ein paar Fehler entfernt, einige Dinge wurden beschleunigt,... Insgesamt gibt es aber nicht viele Veränderungen.

    Version 0.11 gibt es diesmal ohne Source! :p ...dafür auch ohne Müll! Die zip-Datei ist somit kleiner. Man kann es aber weiterhin nicht aus der zip-Datei heraus starten. Speichern ist natürlich auch noch nicht implementiert! :p

    ...zumindest bin ich immernoch für Kritik offen!

    @ Griffin : Hast du doch nichts gefunden, was du nicht verstehst?! Java-Code ist einfach, gell?! 🙂

    (*push*)

    [ Dieser Beitrag wurde am 21.12.2002 um 23:12 Uhr von Gregor editiert. ]



  • aha



  • bezieht sich auf: ohne Source! 😡 😡 😡 😡 😡

    kein Gruß 😡


  • Mod

    Original erstellt von <pusher>:
    **bezieht sich auf: ohne Source! 😡 😡 😡 😡 😡
    **

    Der Source hat sich im Vergleich zu Version 0.1 nicht stark verändert! Wenn eine Version 0.20 rauskommt, dann gibt es wieder nen Source!

    EDIT : Wenn jemand wirkliches Interesse am neuesten Source hat, dann kann er seine E-Mail-Adresse posten. Ich schicke ihm dann den Source zu!

    [ Dieser Beitrag wurde am 21.12.2002 um 23:16 Uhr von Gregor editiert. ]



  • Es besteht ein sehr großes Interesse am neuen Code. Du könntest ihn ja in einem Extra-Packet zur Verfügung stellen. Oder schämst du dich für deinen Quelltext?



  • Original erstellt von Gregor
    **

    @ Griffin : Hast du doch nichts gefunden, was du nicht verstehst?! Java-Code ist einfach, gell?

    **

    Zu meiner Schande muss ich einräumen, mir den Source noch nicht angesehen zu haben.
    Ich kann mir die fehlende Zeit leider auch nicht beschaffen.
    Aber jetzt sind ja Weihnachtsferien.
    Und die nächsten Tage nehm ich das mal in Angriff.
    Und dann kommen sicherlich noch fragen auf dich zu 😉
    Also betrachte das schonmal als eine Warnung Gregor 😃 🕶



  • 😃 😃 😃 😃 😃 😃 😃 😃


Anmelden zum Antworten