Problem mit ImageMagick

Sonya*

New Member
Hallo zusammen,

ich übertrage ein Projekt von einem Server auf einen anderen (beide Debian). Unter anderem gibt es ein Script, der mit Imagemagick hantiert. Beim Testen auf den neuen Server sehen die mit Imagemagick generierte Bilder ganz anders aus, als auf dem alten.

Das erste Problem ist, dass es ein sehr großer Abstand zwischen einzelnen -labels in einem Bild hinzugefügt wird. Zweitens scheinen die Bilder nicht in RGB (-colorspace RGB ) zu kommen, da die Farben ganz anders aussehen.

Ich habe die Versionen von ImageMagick auf den beiden Server verglichen mit
Code:
convert -version
Beide Server liefern dieselbe Version:
Code:
Version: ImageMagick 6.2.4 02/10/07 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2005 ImageMagick Studio LLC

Woran kann es noch liegen, dass die Anzeige so unterschiedlich ist? Muss da vielleicht noch etwas beim Imagemagick nachinstalliert werden? Wovon kann die Anzeige sonst noch abhängen?

Vielen Dank für eure Hilfe,
Sonya
 
Schau mal, ob auf einem der beiden Server das Verzeichnis "~/.magick/" existiert. Dort findest Du u.A. die Datei "configure.xml". Falls es die dort nicht gibt, wird sie noch an verschiedenen anderen Stellen im Dateisystem gesucht. Dort wirst Du wahrscheinlich zwischen beiden Systemen Unterschiede feststellen können. Schau Dir auch mal die anderen .xml-Dateien, die Du in dem ....../config/-Verzeichnis findest an.

Mit dem Befehl [man]strace[/man] kannst Du rausfinden, welche Dateien sonst noch eingelesen werden.
 
Hallo LinuxAdmin,

vielen Dank für die Tips. Ich bin nicht so gut in Linux-Administration. Also was habe ich versucht.

Gesucht nach configure.xml in system mit find -name configure.xml und mehrere Pfade im alten System gefunden. Unter anderen /usr/lib/ImageMagick-6.2.4/config/ . ~/.magick habe ich nicht gefunden. Grundsätzlich gibt es configure.xml Dateien zur 2 ImageMagick Versionen (6.2.4 und 6.4.2). Da ich mit convert -version die Version die Version 6.2.4 sehe, habe ich die Konfigurationsdateien von 6.4.2 ignoriert. Richtig?

Verglichen mit dem neuen System sind alle Dateien identisch (selbes Datum, selber Größe). Ich habe mir auch configure.xml im nano angeschaut und konnte keinen Unterschied feststellen. Aber es fehlte tatsächlich eine XML-Datei type.xml im neuen System. Ich habe die Datei in das neue System kopiert und zu den anderen XML-Dateien abgelegt. Leider hat es aber nichts gebracht.

Dann habe ich
Code:
strace -o strace.log convert bild.gif bild.gif
ausgeführt und in die Datei geschaut. Die Ausgabe überforderte mich :) Ich habe nur nach open-Befehlen geschaut und dabei noch eine andere Stelle gefunden, wo die Konfigurationsdateien liegen:
Code:
/usr/share/ImageMagick-6.2.4/config/magic.xml

Aber auch dieser Ordner und sein Inhalt ist identisch zu dem neuen System. Andere open-Befehle in strace greifen auf verschiedene Bibliotheken in usr/lib, /lib, /lib/tls/i686/cmov/ und /etc/mtab.

Und es gibt tatsächlich 3 Stück, die ich auf dem neuen System nicht finden kann:

Code:
/usr/lib/libMagickCore.so
/usr/lib/libMagickWand.so
/usr/lib/ImageMagick-6.4.2/modules-Q16/coders/label.so

Leider hört es hier bei mir auf. Ich weiß nicht, wie ich diese Bibliotheken nachlade auf dem neuen System. Einfach reinkopieren wird wohl nichts bringen, oder?

Vielen Dank für Deine Hilfe,
Sonya
 
Last edited by a moderator:
Sorry, ich habe jetzt erst realisiert, dass es laut strace die Konfigurationsdateien von ImageMagick 6.4.2 und nicht 6.2.4 geladen werden. Dann convert -version nicht mit dem Root sondern mit dem web-Benutzer ausgeführt und es kommt tatsächlich: ImageMagick 6.4.2.

Die kleinen "Zahlendreher" bei der Version sind heimtückisch. :) Ich muss erstmal die Version 6.4.2 auf dem neuen Server installieren und erst dann die fehlenden Module nachladen (Danke, Whistler!).

EDIT: Leider finde ich die Version 6.4.2 nicht zu Download. Auf diese Seite http://rpm.pbone.net/index.php3/sta...imagemagick-6.4.2.10-5mdv2009.0.i586.rpm.html finde ich den Download, aber nicht für Debian. Was ich da aber sehen kann ist, dass es die fehlende Module bereits enthält.

Kann mir jemand helfen, die Version 6.2.4 auf 6.4.2 zu erneuern? Gerne auch gegen Bezahlung, wenn mir erklärt wird, was ich machen soll. Ich möchte es gerne selbst verstehen, aber finde einfach nichts dazu in Google.

Vielen Dank, Sonya
 
Last edited by a moderator:
Kann mir jemand helfen, die Version 6.2.4 auf 6.4.2 zu erneuern?

Ich habe es selbst versucht. Leider ohne Erfolg. Was habe ich gemacht. Alte Version entfernt:
Code:
apt-get remove imagemagick

Gewünschte Version heruntergeladen:
Code:
wget http://code.launchpad.net/imagemagick/main/6.4.2-1/+download/ImageMagick-6.4.2-1.tar.gz

Datei entpackt:
Code:
tar xvfz ImageMagick-6.4.2-1.tar.gz

# Konfiguriert und installiert
Code:
./configure
make
make install

Ergebnis, ImageMagick 6.4.2 ist in /usr/local/lib installiert und nicht in /usr/bin. Ergebniss von convert -version:
Code:
-bash: /usr/bin/convert: Datei oder Verzeichnis nicht gefunden

Jetzt komme ich nicht weiter. Wo habe ich einen Denkfehler gemacht?

Danke, Sonya
 
So, ich habe es hingekriegt :) Ganz stolze Leistung für einen Linux-Debian-Anfänger. Falls es jemandem weiterhelfen sollte, hier ist eine Schritt-für-Schritt Anleitung:

"Wie installiere ich ein andere Version von ImageMagick?"

Aktuelle Version von ImageMagick anzeigen lassen
Code:
convert -version

Alte version deinstallieren
Code:
apt-get remove imagemagick

In das Verzeichnis tmp wechseln, kann auch vom Benutzer sein
Code:
cd /tmp

Neue Version von Image Magick runterladen
Code:
wget http://ovh.dl.sourceforge.net/sourceforge/imagemagick/ImageMagick-6.4.2-10.tar.gz
Datei entpacken
Code:
tar xvfz ImageMagick-6.4.2-1.tar.gz
Wechseln in das erstellte Verzeichnis
Code:
cd ImageMagick-6.4.2
Konfigurieren (mit prefix installiert sich das ganze in /usr/bin)
Code:
./configure --prefix=/usr
In der Zusammenfassung am Ende von Konfiguration schauen, was fehlt. Bei mir stand PNG und Freetype auf "no", daher habe ich erstmal die Konfiguration wieder entfernt
Code:
make distclean

Unterstützung für PNG installieren
Code:
cd /tmp
wget http://ovh.dl.sourceforge.net/sourceforge/libpng/libpng-1.2.35.tar.gz
cd libpng-1.2.35
./configure --prefix=/usr
make
make install

Unterstützung für Freetype installieren
Code:
cd /tmp
wget http://ftp.fifi.org/ImageMagick/delegates/freetype-2.3.8.tar.gz
cd freetype-2.3.8
./configure --prefix=/usr
make
make install

Jetzt ImageMagick neu konfigurieren und installieren
Code:
cd /tmp/ImageMagick-6.4.2
./configure --prefix=/usr
make
make install


Grundsätzlich, wenn etwas schief läuft
make distclean - entfernt alles, was durch configure und make erstellt wird.
make uninstall -entfernt (fast) alle Dateien, die durch make install in das System kopiert wurden.

Das portierte Projekt ist Google personalisieren. Das Logo ist mit ImageMagick gemacht.

Grüße aus dem Rheinland,
Sonya
 
Back
Top