Entwickler-Ecke

Open Source Projekte - SharpPix 2.0


Christian S. - Di 14.03.06 01:17
Titel: SharpPix 2.0
SharpPix 2.0

Einleitung
SharpPix ist ein Programm, welches dazu dient, die Größe vieler Bilddateien auf einmal zu ändern. Dabei werden verschiedene Arten unterstützt, die neuen Maße einzugeben, sodass SharpPix in vielen Situationen einsetzbar ist. Auf Wunsch werden EXIF-Daten in die geänderten Dateien übernommen, eine HTML-Galerie erstellt oder auch die Dateinamen mit einer Art Baukasten neu erstellt. Auch Wasserzeichen können in die Dateien integriert werden.

Dies hier ist der zweite Versuch, eine Version 2.0 dieses Programmes herauszubringen. Der erste Versuch endete im Oktober letzten Jahres, als ich anfing, mich mit .NET 2.0 zu beschäftigen und mich entschied, dass das die weitaus bessere Plattformm für SharpPix wäre als .NET 1.1.

Programm-Features
An dieser Stelle seien noch einmal die wichtigsten Funktionen von SharpPix aufgezählt:

Die Sourcen
SharpPix ist vollständig in C# 2.0 geschrieben, dabei wurde das Visual Studio 2005 verwendet. Die frei verfügbare Express-Version sollte reichen, das Projekt zu kompilieren zu können. Die license.txt im Root-Verzeichnis des Pakets ist zu beachten.

Eine Anleitung, um Plugins zu schreiben, werde ich in ein paar Tagen nachreichen.

Die Binaries
Zur Ausführung der Binaries ist das .NET Framework 2.0 nötig. Sollten im Programm Einstellungsprofile angelegt werden, so werden diese in einer Datei im Profilverzeichnis des jeweiligen Nutzers gespeichert (\Anwendungsdaten\SharpPix\2.0.0\profiles.xml).

Hinweis: Ich habe das Programm schon ein paar wenigen Testern gezeigt, Fehler sind aber trotzdem noch wahrscheinlich.

Downloads
Binaries: http://www.stelzmann-duesseldorf.de/programme/sharppix2/SharpPix.zip
Source: http://www.stelzmann-duesseldorf.de/programme/sharppix2/SharpPix_Source.zip



Crossposting [http://www.mycsharp.de/wbb2/thread.php?threadid=16254]


Robert_G - Di 14.03.06 11:02

Moin, sieht schnieke aus. :)
Rechtsklick auf KontextHilfe (btw: nicht übersetzt ;) ) gibt mir eine Ex:
Zitat:
System.UriFormatException: Invalid URI: The hostname could not be parsed.
at System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind)
at System.Uri..ctor(String uriString)
at SharpPix.SharpPixHelp.showHelp(String topic, String subtopic)
at SharpPix.Mainform.showHelp(String topic, String subtopic, Boolean createHelp)


Außerdem haben die Thumbnails nicht die richtige aspect ratio.

Es wäre außerdem ganz gut wenn man den LV als Details darstellen könnte um so zu Bleistift nach Dimensions, Größe,Format,... sortieren zu können. [1]

Ein Setup wäre auch nett, schaue dir im VS einfach mal die Setup Projects an. Das übernimmt 95% der Arbeit für dich. ;)
Mit dem SetUp könntest du auch gleich ngen drüberennen lassen. Habe ich gerade gemacht und die App startet nun schneller als Notepad. :)

[1]Bei Interesse kann ich dir eine Lib geben, die dir aus einem String wie "Size desc, Format, Name desc" dyn. ein Comparison<T> compiliert. Finde ich sehr praktisch für Sortierungreihenfolgen ähnlich wie im Explorer.
Das Prinzip ist ähnlich wie beim StringConverter. ;)


Delete - Di 14.03.06 11:06

Unabhängig vom Programm habe ich eine Anmerkung zur Toolstrip-Komponente. Was hältst du davon, diese [http://blogs.msdn.com/jfoscoding/articles/489637.aspx] Farbtabelle zu nutzen? Damit wird aus dem merkwürdigen Blau von Office 2003 das normale Graubraungelb (:zwinker:) von Visual Studio 2005. Die Dame, von der die Tabelle stammt, drückt sich jedoch leider um eine klare Antwort bzgl. der freien Verwendbarkeit [http://blogs.msdn.com/jfoscoding/archive/2005/11/06/489641.aspx#497023]. Wie auch immer, ich habe da noch einen Renderer geschrieben, damit vertikale Separatoren dann auch wie im Visual Studio 2005 erscheinen. Den hänge ich mal ran, denn der ist von mir. :)

Anwendung kennst du ja

C#-Quelltext
1:
toolStrip1.Renderer = new TanColorToolStripProfessionalRenderer(new TanColorTable());                    


Christian S. - Di 14.03.06 11:48

Hi!

zur Kontexthilfe:
Übersetzung: Die Kontextmenüs verstecken sich immer so, wenn man das Programm übersetzt.
Drängeln sich in eine Ecke, sodass man sie übersieht ;-)

Fehler: Kommt der immer oder nur an einer bestimmten Stelle?


Aspect Ratio der Thumbnails:
Ja, ich weiß. Wenn ich die mit der richtigen Aspectratio haben will, wird das ein wenig aufwändiger bei der Erzeugung, aber mir ist das auch zunehmend ein Dorn im Auge, obwohl ich zuerst dachte, ich könne damit leben ;-)


Sortierung der Listview:
Ja, das ist eine gute Idee. An der Lib hätte ich durchaus Interesse!


Setup:
Setup ist auf jeden Fall geplant, hatte ich mir nur für die Veröffentlichnung in der Entwickler-Ecke gespart. Werde mir die Setup-Projects mal ansehen.


Toolstrip-Farben:
Danke! Ich habe die Windows-Designs immer deaktiviert, daher ist mir die fürchterliche Farbe gar nicht aufgefallen :zwinker:

Grüße
Christian


Robert_G - Di 14.03.06 11:58

Zitat:
zur Kontexthilfe:
...
Fehler: Kommt der immer oder nur an einer bestimmten Stelle?
Immer.


Zitat:
Sortierung der Listview:
Ja, das ist eine gute Idee. An der Lib hätte ich durchaus Interesse!
Ich werde sie etwas aus einem größeren Brocken herausreißen müssen. Rechne irgendwann heute abend, morgend abend damit.


Zitat:
Setup:
...
Werde mir die Setup-Projects mal ansehen.
Solltest du mal tun, ist echt praktisch für alles was keinen IS Kabenzmann braucht. :)


Zitat:
Toolstrip-Farben:
Danke! Ich habe die Windows-Designs immer deaktiviert, daher ist mir die fürchterliche Farbe gar nicht aufgefallen :zwinker:
Wer das hässliche blaue Theme nutzt, sollte mit hässlichen blauen Apps nicht unter 5 Jahren bestraft werden. In Silber sieht's schnieke aus. ;)


Delete - Di 14.03.06 12:55

user profile iconRobert_G hat folgendes geschrieben:
Wer das hässliche blaue Theme nutzt, sollte mit hässlichen blauen Apps nicht unter 5 Jahren bestraft werden. In Silber sieht's schnieke aus. ;)


Nöö, in grau ist Luna richtig süß.

@Christian

Cooles Programm :zustimm:


Delete - Di 14.03.06 13:59

Ächtz. Es hat mich eine viertel Stunde gekostet herauszufinden, wie man einen Zielordner angibt. Den Button in dem grauen Band habe ich einfach nicht gesehen, weil ich ihn neben dem Editfeld gesucht habe, in das sich übrigens nichts eintippen läßt.


Robert_G - Di 14.03.06 14:20

user profile iconLuckie hat folgendes geschrieben:
Ächtz. Es hat mich eine viertel Stunde gekostet herauszufinden, wie man einen Zielordner angibt.
War so klar, dass gleich Luckie mit dem üblichen Accessibility-Zeugs auftaucht. :mrgreen:


Christian S. - Di 14.03.06 14:48

user profile iconLuckie hat folgendes geschrieben:
Ächtz. Es hat mich eine viertel Stunde gekostet herauszufinden, wie man einen Zielordner angibt. Den Button in dem grauen Band habe ich einfach nicht gesehen, weil ich ihn neben dem Editfeld gesucht habe,
:? Sorry, aber der Button ist IMHO so gut zu sehen, dass ich das nicht ändern werde. Ich könnte es höchstens noch so machen, dass sich der Dialog bei Klick in die Textbox öffnet.

user profile iconLuckie hat folgendes geschrieben:
in das sich übrigens nichts eintippen läßt.
Richtig. Die Änderung des Zielordners über den entsprechenden Dialog halte ich für deutlich weniger fehleranfällig.


Delete - Di 14.03.06 14:53

Ich wollte zum Testen nur mal kurz "d:\" eintippen, dafür war mir ein Dialog zu umständlich.

user profile iconChristian S. hat folgendes geschrieben:
Sorry, aber der Button ist IMHO so gut zu sehen, dass ich das nicht ändern werde. Ich könnte es höchstens noch so machen, dass sich der Dialog bei Klick in die Textbox öffnet.

Nun ich hätte so einen Butoone ben hinter dem Edit erwartet und da habe ich ihn nicht gefunden. Oben in der Toolbar zu gucken, auf die Idee bin ich gar nicht gekommen. Aber wenn es sich auf Klick in das Edit öffnet, dann wäre das Problem schon mal behoben. Ich habe übrigens auch versucht ihn mit einem Rechtsklick in das Edit zu öffnen und noch tausend andere Sachen. Also man kann mir nicht vorwerfen, ich hätte nicht mein bestes gegeben. ;)


Motzi - Di 14.03.06 15:25

user profile iconLuckie hat folgendes geschrieben:
Ächtz. Es hat mich eine viertel Stunde gekostet herauszufinden, wie man einen Zielordner angibt. Den Button in dem grauen Band habe ich einfach nicht gesehen, weil ich ihn neben dem Editfeld gesucht habe,

Genau das hab ich mir auch schon gedacht.. Auch wenn es "fehleranfällig" ist wenn man selbst was in das Edit-Feld eingeben kann - ich halte es auch für besser. Du kannst ja schließlich einfach überprüfen oder Ordner existiert und wenn nicht entweder eine Fehlermeldung anzeigen oder eventuell ein Nachfrage ob der Ordner erstellt werden soll...


Marco D. - Di 14.03.06 15:31

Saug ich gleichmal. Die erste Version war ja schon genial. :zustimm:
Gleich mal die neue ausprobieren :-)


Delete - Di 14.03.06 15:37

Noch was. Wie wäre es bei dem Gallery Plugin die Möglichkeit zu schaffen einen Stylesheet auszuwählen, der entweder fest in die HTML Datei geschrieben wird oder man einen über eine Url angeben kann der dann im Header entsprechend verlinkt wird.


Christian S. - Di 14.03.06 15:37

user profile iconMotzi hat folgendes geschrieben:
Du kannst ja schließlich einfach überprüfen oder Ordner existiert und wenn nicht entweder eine Fehlermeldung anzeigen oder eventuell ein Nachfrage ob der Ordner erstellt werden soll...
Eine entsprechende Abfrage ist schon drin (der Ordner könnte ja nach seiner Auswahl gelöscht werden). Da das Programm auch bei DAUs noch möglichst sicher funktionieren soll, tendiere ich eher dazu, die Textbox read-only zu lassen. Im normalen Einsatz wird man wohl auch eher Ordner haben, die man nicht mehr per Hand eingibt. Auch deshalb, weil der Zielordner in vielen Fällen eh erst erstellt werden muss.

//edit: @Luckie: Ja, das ist eine gute Idee! :-)


Delete - Di 14.03.06 16:06

So was hab eich mal bei meinem ThumbNailCreator gemacht: http://www.michael-puff.de/Developer/Delphi/Programme/ThumbnailCreator1_0.zip
Den benutze ich, um Inhaltsverzeichnisse für meine Foto CDs zu erstellen.


Christian S. - Do 16.03.06 18:29

Hallo!

Ich habe eine neue Version hochgeladen.

Changelog:


Grüße
Christian

P.S.: Den Bug mit der Hilfe, den Robert gepostet hat, konnte ich leider auch auf einem englischen Windows nicht reproduzieren. :gruebel:


Delete - Fr 17.03.06 10:38

user profile iconChristian S. hat folgendes geschrieben:
  • Nutzung dezenterer Farben für Toolstrips

Gilt auch für das Kontextmenü, ;). Gilt im Prinzip für alles, das irgendwie ein Strip im Namen hat und das oft kopierte Office-Menüdesign nutzt (ToolStrip, MenuStrip, ContextMenuStrip).