Eine Frage zu Bildformaten und Bildbeschneidung

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Bildbuster
Beiträge: 6
Registriert: 12.10.2006 22:41

Eine Frage zu Bildformaten und Bildbeschneidung

Beitrag von Bildbuster »

Hallo,
ich habe gerade ein kleines Projekt in der Mache. Dabei geht es darum, dass anhand einer XML Datei ein Bilder auf eine bestimmte Größe beschnitten werden müssen. Soweit kein Problem. Ich kann mit PureBasic das XML auswerten, JPG und TIFF Bilder laden, beschneiden und als JPG wieder speichern. Nun mein Problem... Das beschneiden von Bildern funktioniert ja grundsätzlich, ICC-Profile und einige andere Informationen gehen aber dabei verloren. Ich kann auch keine TIFF's speichern. Alle diese Funktionen und ein paar mehr liefert aber ImageMagick. Hat jemand schon mal versucht dieses in PureBasic zu integrieren, bzw. die Libs zu nutzen? Wenn das funktionieren würde, könnte man einige mächtige Tools programmieren. Kann jemand helfen?
Benutzeravatar
Kiffi
Beiträge: 10715
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Eine Frage zu Bildformaten und Bildbeschneidung

Beitrag von Kiffi »

Bildbuster hat geschrieben:Alle diese Funktionen und ein paar mehr liefert aber ImageMagick. Hat jemand schon mal versucht dieses in PureBasic zu integrieren, bzw. die Libs zu nutzen? Wenn das funktionieren würde, könnte man einige mächtige Tools programmieren. Kann jemand helfen?
ich kenne ImageMagick nur vom Hören-Sagen, weiss aber das es der
Quasi-Standard unter PHP für die Bildbearbeitung ist.

Ich kann Dein Interesse vielleicht auf FreeImage lenken [1], welches
zumindest vom Funktionsumfang auch einen recht guten Eindruck macht. Es
gibt auch mindestens einen Wrapper, der die DLL unter PB nutzbar macht.
Einfach mal die Boardsuche anschmeissen.

Grüße ... Kiffi

[1]: http://freeimage.sourceforge.net/ (die Seite ist momentan ein wenig lahm)
a²+b²=mc²
Bildbuster
Beiträge: 6
Registriert: 12.10.2006 22:41

Hallo Kiffi,

Beitrag von Bildbuster »

bin auch schon über freeimage gestolpert, lese mir gerade die Doku durch. Das geht zwar schon in die richtige Richtung, finde aber nichts zum Beschneider von Bildern. Kann aber auch sein, dass ich einfach zur Zeit nur blind bin... Ist ja schon spät. ImageMagick ist noch vielfältiger einsetzbar, im Bereich konvertierung und dynamischer Erstellung von Bildern gibt es meiner Meinung nach nichts besseres. PureBasic und ImageMagick wären schon eine nette Kombination. Ich arbeite im technischen Bereich eines Zeitungsverlages und setze PureBasic für Verbesserungen und Automatisierungen im Workflow ein. Könnte ich auf ImageMagick zurückgreifen... da fallen mir einige sehr nützliche Sachen ein, die ich noch optimieren könnte. Ich danke trotzdem für den Hinweis auf freeimage. Ermöglicht wenigstens schon einmal ICC-Profile.

Gruß Sven
Bildbuster
Beiträge: 6
Registriert: 12.10.2006 22:41

Alles klar

Beitrag von Bildbuster »

Hallo, habs selbst geschafft. :allright: Wenn man den Weg erstmal kennt, ist es auch gar nicht schwer. Falls jemand wissen will wie es geht, einfach hier melden.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

is nich so, dass mich persönlich das jetzt extrem interessieren würde,
aber bestimmt braucht es irgendjemand irgendwann mal,
und der könnte dann per BoardSuche diesen thread finden.
also, wenn du ein paar tips knapp umreißen könntest, wäre das ne gute aktion. ;)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Bildbuster
Beiträge: 6
Registriert: 12.10.2006 22:41

Also...

Beitrag von Bildbuster »

jeder der sich ernsthaft mit erstellung und konvertierung von Bilddaten beschäftigt, wird irgendwann um imagemagick kaum herumkommen.
Also gilt für alle Windows-Anwender mit grafischem Interesse und PureBasic in der Hinterhand ...

http://www.imagemagick.org/script/binar ... hp#windows

(übrigens: PureBasic ist cool!!!)

ImageMagick installieren und danach die "CORE_RL_wand_.dll" untersuchen.

Code: Alles auswählen

If OpenLibrary(1, "CORE_RL_wand_.dll")
  If ExamineLibraryFunctions(1)
     IsLibrary(1)
     CountLibraryFunctions(1)
     ExamineLibraryFunctions(1)
     For z = 1 To CountLibraryFunctions(1)
     NextLibraryFunction()
    Debug LibraryFunctionName()
Next z

EndIf

Debug "Alles klar"
Else
Debug "Fehler"
EndIf
Also, hier habt ihr euren Befehlssatz. Bin gerade dabei so etwas wie eine Anleitung zu schreiben. Aber könnte auch Hilfe gebrauchen. Jeder, der irgendein Grafikformat in ein anderes konvertieren, dieses bearbeiten und wieder irgendwie konvertieren möchte, mag mir helfen oder auch darauf warten das ich vorankomme...

Hab gerade ein Problem mit der Rückgabe von Variablen aus CallCFunction aufrufen... Bin da echt kein Spezialist! Kennt sich da jemand aus?
Bildbuster
Beiträge: 6
Registriert: 12.10.2006 22:41

und was ich noch sagen wollte...

Beitrag von Bildbuster »

kritisiert bitte nicht meinen Programmiertstil

bin eine Eierlegendewollmilchsau :mrgreen: schreibe so ziemlich in jeder Sprache, wenn es sein muss. Bin dabei aber nicht immer sehr optimiert. Bin aber für jede Hilfe dankbar.
Benutzeravatar
dige
Beiträge: 1245
Registriert: 08.09.2004 08:53

Beitrag von dige »

Du verwendest nur die Core_rl_wand.dll? Was kann die denn?
Da sind doch unmengen an dll's....
"Papa, ich laufe schneller - dann ist es nicht so weit."
Bildbuster
Beiträge: 6
Registriert: 12.10.2006 22:41

Die kann eine Menge.

Beitrag von Bildbuster »

Die kann schon eine Menge. Hier ist der Link zur Imagemagick Magick-Wand Seite: http://www.imagemagick.org/script/magick-wand.php
Konvertiert z.B. alle möglichen Bildformate in andere Bildformate. Unterstützt ColorManagement, beschneidet Bilder, dreht Bilder usw.
Antworten