ich möchte hier jetzt einfach mal mein neues kleines Projekt veröffentlichen.
Was ist PixMe?
Mit PixMe kannst du ganz einfach Pixelbilder in beliebigen Auflösungen erstellen. Die Tools und die simple Oberfläche des Programms helfen dabei, schnell zu malen und Flächen zu bearbeiten.
Bisherige Features:
-Die Möglichkeit das fertige Bild als .jpg oder .png in beliebiger Auflösung zu exportieren
-Speichern des kompletten Projektes, um es später weiter zu bearbeiten
-SCHNELLES zeichnen dank der simplen Bedienung
-Transparenz
-Tools wie Pinsel, Farbeimer, Radierer, Stift, Randomnizer
-Mehr
Hotkeys:
C = erweiterte Farbauswahl
G = Gitter aktivieren / deaktivieren(Performance Probleme behoben)
Strg + Z = Letzte Aktion rückgängig machen
Strg + Y = Letzte Aktion wiederholen
Farbeimer + Mausklick + T = Fläche transparent machen
Rechte Maustaste = Farbe von Pixel auswählen und verwenden
Mittlere Maustaste = Farbe mit letzter Farbe tauschen
Linke Maustaste = Malen
Pfeiltasten = Scrollen
Mausrad = Zoomen
Sehr gute Arbeit, danach habe ich schon länger gesucht! Habe vorher mtPaint für pixelgrafiken benutzt aber PixME ist eindeutig einfacher zu bedienen und erfordert keine Installation. Ich hoffe du arbeitest weiter an dem guten Stück :-)
Verbesserungsvorschläge:
Natives look & feel würde mir persönlich besser gefallen als Nimbus,
gespeicherte Bilder haben ein komisches graues Raster
Siehe hier:
Danke.
Der Fehler wurde behoben und das native Design wurde eingestellt.
Eine Frage: verwendest du das Programm unter Linux? Und wenn ja, läuft es dort stabil?
Hey, so schnell!
Ich tests gleich mal in einer VM und schreibe hier dann über meine Erfahrungen
Edit
openJDK6, standardmäßige JVM bei den meisten linux distros gibt folgenden Fehler:
linux@linux:~/Desktop$ java -jar PixME.jar
Exception in thread "main" java.lang.UnsupportedClassVersionError: de/konatru/pixme/Program : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java :634)
at java.security.SecureClassLoader.defineClass(Secure ClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader .java:277)
at java.net.URLClassLoader.access$000(URLClassLoader. java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java: 212)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.j ava:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:3 21)
at sun.misc.Launcher$AppClassLoader.loadClass(Launche r.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:2 66)
Could not find the main class: de.konatru.pixme.Program. Program will exit.
Sieht gut aus, ich habs zuerst auf dem Linux und dann auf meinem Windows getestet.
Unter Windows funktioniert es ohne Probleme, bei Linux jedoch nicht. Wenn ich es zum 3-4 mal öffne, erst dann erscheint die GUI nachdem man die Eigenschaften gewählt hat(also Breite, Höhe und so).
Noch dazu, wenn man unter Projekt-laden geht, kann man jede Datei auswählen was etwas naja, weißt schon^^ Ich würd mal die Auswahl nur auf .pxme beschränken, du weißt ja was für User es geben kann
Sieht gut aus, ich habs zuerst auf dem Linux und dann auf meinem Windows getestet.
Unter Windows funktioniert es ohne Probleme, bei Linux jedoch nicht. Wenn ich es zum 3-4 mal öffne, erst dann erscheint die GUI nachdem man die Eigenschaften gewählt hat(also Breite, Höhe und so).
Noch dazu, wenn man unter Projekt-laden geht, kann man jede Datei auswählen was etwas naja, weißt schon^^ Ich würd mal die Auswahl nur auf .pxme beschränken, du weißt ja was für User es geben kann
Den Datei Filter habe ich hinzugefügt.
Welche Linux distributionen verwendest du, wenn ich fragen darf?
Welche Linux distributionen verwendest du, wenn ich fragen darf?
Verwende Debian
Edit: Ein weiterer Fehler gefunden. Wenn man bei Speichern oder Laden, auf Cancel drückt, wird ein StackTrace in der Konsole ausgegeben.
Code:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at de.konatru.pixme.Frame.saveImage(Frame.java:259)
at de.konatru.pixme.Frame.actionPerformed(Frame.java:405)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3312)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:729)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:688)
at java.awt.EventQueue$3.run(EventQueue.java:686)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:702)
at java.awt.EventQueue$4.run(EventQueue.java:700)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:699)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
-Linux Probleme behoben
-Icons hinzugefügt
-Undo/Redo Funktion hinzugefügt
-Das Ändern der Hintergrundfarbe ist jetzt auch ohne erstellen einer neuen Datei möglich
-Oberfläche wurde bearbeiten
-Bugs behoben
-Performance verbessert
Könnte vielleicht ein Linux Nutzer nochmal testen?
-Diverse Bugs behoben
-Laden/Speichern von transparenten "Pixme Dateien" ist jetzt möglich
-Im "Neue Datei"-Frame ist es nun möglich die Option "Transparent" auszuwählen, um den kompletten Hintergrund transparent zu machen.
-Fenster ist bis auf weiteres verstellbar, um die Nutzung unter Linux zu verbessern
-Beispiele überarbeitet
Es ist jetzt nicht mehr möglich, "Pixme Dateien" aus den Versionen 1.2 und älter zu laden.
-Bugs behoben
-3 weitere Tools hinzugefügt: Farbeimer: zum Füllen gleichfarbiger Flächen, Pinsel: 3 Felder groß, Randomnizer(Funktioniert nicht nicht ganz): mit dem Tool ist es möglich, einer gleichfarbigen Fläche, zufällige Farben im Bereich des Farbwertes ihrer Farbe zu geben.
-Malmarkierung hinzugefügt
-Schnellfarbauswahl: Farbauswahl per MausHover
-Füllfunktion verbessert
-Weitere Einstellungen hinzugefügt
-Transparenzhintergrund hizugefügt
-Hotkeys für jede häufig verwendete Funktion hinzugefügt (Rückgängig machen/Wiederholen)
-Farbeimer Funktion hinzugefügt; bei drücken der [T] Taste und einem Mausklick mit dem Farbeimer auf eine Fläche, wird diese Transparent