Schrift
[thread]12777[/thread]

[Image::Magick] Segment Fault bei TIFF->PNG, mit Debugger kein Fehler

Leser: 2


<< >> 7 Einträge, 1 Seite
xiconfjs
 2008-11-18 15:26
#116364 #116364
User since
2006-01-21
79 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hi Leutz,

ich habe ein seltsames Problem. Ich benutzte PerlMagick (dahinter ein selbstkompiliertes ImageMagick) um jegliche Bilddateitypen in PNGs umzuwandeln. Das funktioniert so auch wunderbar, doch ich habe in meiner Sammlung ein TIFF, welches einen kleinen Defekt zu haben scheint. Das finde ich jetzt nicht so schlimm, doch wenn ich dann man Skript über die ganzen Bilddateien laufen lassen, bekomme ich genau bei diesem TIFF ein "Segment Fault" und mein Skript stürzt ab. Das Skript stürzt immer beim einlesen ($image->Read) ab. Also habe ich mal das Debug-Flag (-d) angemacht, und dass Skript Schritt für Schritt durchlaufen lassen, doch kein "Segment Fault" mehr, und die Umwandlung hat auch geklappt.

Jetzt sehe ich 2 Möglichkeiten:
1.) Versuchen das Bild automatisiert auszusortieren. Vielleicht mit einer ImageMagick->Check() Funktion ?!?
2.) Herausfinden, warum der Debugger nicht abstürzt, aber das Skript schon.


Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/perl -w

use strict;
use warnings;
use Image::Magick;

$|=1;

my $pic_name = "05.tif";
my $image = Image::Magick->new;

print "[start] reading\n";
my $x = $image->Read($pic_name);            # hier kommt "Segment Fault"
print "[stop] reading\n";                   # das hier erscheint erst gar nicht mehr

my ($width,$height) = $image->Get('width','height');
$x = $image->Resize(geometry=>'400x400');
$x = $image->Write("05_big.png");
$x = $image->Resize(geometry=>'100x100');
$x = $image->Write("05_small.png");


Code: (dl )
1
2
Version: ImageMagick 6.4.4 2008-10-22 Q16 http://www.imagemagick.org
perl -MImage::Magick -e 'print "$Image::Magick::VERSION"' -> 6.4.4



Code: (dl )
1
2
Hier noch der Link zum defekten Bild:
http://db.nixzuholen.de/test/05.tif



mFg xiconfjs
murphy
 2008-11-18 23:23
#116378 #116378
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
Tja, das sieht nach einem Bug in ImageMagick aus. Das Kommandozeilenprogramm convert von ImageMagick 6.4.5 stürzt auf meiner Kiste bei diesem Bild ebenfalls ab.

Vielleicht solltest Du mal auf einer der Mailinglisten von ImageMagick (z.B. http://www.imagemagick.org/mailman/listinfo/magick-bugs) nachfragen, was man da machen kann.
When C++ is your hammer, every problem looks like your thumb.
xiconfjs
 2008-11-19 00:27
#116379 #116379
User since
2006-01-21
79 Artikel
BenutzerIn
[Homepage] [default_avatar]
Jo, werd ich mal probieren, aber was mich halt stutzig macht, ist, dass, wenn ich den Deug-Modus (-d) einschalte, dass Skript nicht abstürzt... *confused*

Zur Info, hab ein Cross-Posting im ImageMagick-Forum.


mFg xiconfjs
Gast Gast
 2008-11-19 16:44
#116403 #116403
Aktuell ist aber derzeit 6.4.5.8 unter Unix.
http://www.imagemagick.org/script/binary-releases....

Wieso denn selbstkompiliert!???
Gibt es keine Packages per YUM, APT o. ä.?
Schon mal ein Update des Linux-Package gemacht?
Welches OS haste denn genau?
xiconfjs
 2008-11-20 12:55
#116431 #116431
User since
2006-01-21
79 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hi Gast,

also, warum ich das selbstkompiliert habe, liegt daran, dass ich eine Mac OS Server v10.4.11 habe, und es da keine so schönen Lösungen wie apt oder yum gibt.

Eine die neuste Version von ImageMagick (6.4.5.9) habe ich auch probiert, daran lag es aber auch nicht. Also habe ich eine BETA Version von libtiff (3.9.0 BETA) installiert, ImageMagick neu kompiliert, und siehe da, der "Segment Fault" ist weg, und alles läuft wie geschmiert :)

Danke nochmal für die Hinweise und Tipps.


mFg xiconfjs
murphy
 2008-11-20 17:29
#116454 #116454
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
xiconfjs+2008-11-20 11:55:26--
[...] also, warum ich das selbstkompiliert habe, liegt daran, dass ich eine Mac OS Server v10.4.11 habe, und es da keine so schönen Lösungen wie apt oder yum gibt. [...]


Es gibt Fink und MacPorts.

Fink basiert auf dpkg, funktioniert also so wie das Paketmanagement auf Debiansystemen. Es sind eine ganze Menge Binärpakete populärer OpenSource-Software vorhanden.

MacPorts funktioniert mehr wie die Paketmanager auf BSD-Systemen. Es sind fast keine Binärpakete vorhanden, sondern das meiste wird aus Quellen kompiliert, aber zumindest wird einem das Management von Updates und Abhängigkeiten sowie die Installation in eine konsistente Verzeichnisstruktur bequem abgenommen. Ausserdem sind die Pakete für MacPorts im allgemeinen aktueller und zahlreicher als die für Fink.
When C++ is your hammer, every problem looks like your thumb.
xiconfjs
 2008-11-20 21:05
#116458 #116458
User since
2006-01-21
79 Artikel
BenutzerIn
[Homepage] [default_avatar]
Leider hatte ich bis jetzt mit beiden, fink und macports, zu viele Probleme, vielleicht habe ich mich auch zu doof angestellt, aber ich finde die Variante, selber zu kompilieren, jetzt auch nicht so schlimm :)


Hauptsache Problem gelöst, dafür wird man ja bezahlt ;)
<< >> 7 Einträge, 1 Seite



View all threads created 2008-11-18 15:26.