sprain: Probleme mit Image::Magick

Hallo,

Nach langem Versuchen ist mir eingermassen gelungen, das Modul Image::Magick zu installieren (Mac OS 10.2, Apache-Server).

Nun habe ich aber trotzdem ein Problem. Schaut euch doch mal das folgende Skript an:

#!/usr/bin/perl

use Image::Magick;

$bildzumlesen = "/Pfad/Zum/Bild/test.jpg";

$im_medium = Image::Magick->new(magick=>'JPG');

open(DATA, "$bildzumlesen");
$im_medium->Read(file=>DATA);
close(DATA);

($im_width, $im_height, $colorspace) = $im_medium->Get ('width','height','colorspace');

So, wenn ich nun die ausgelesenen Daten ausgebe, dann steht da:
$colorspace = 'RGB'
$im_width =
$im_height =

Warum sind $im_width und $im_height leer? Liegts am Skript? Oder habe ich evtl. das Modul noch nicht sauber installiert?

Würde mich freuen über einen Tipp!

Gruss, sprain

  1. Halihallo sprain

    open(DATA, "$bildzumlesen");
    $im_medium->Read(file=>DATA);
    close(DATA);

    ($im_width, $im_height, $colorspace) = $im_medium->Get ('width','height','colorspace');

    Warum sind $im_width und $im_height leer? Liegts am Skript? Oder habe ich evtl. das Modul noch nicht sauber installiert?

    Hm. Könnte mir denken, dass es daran liegt, dass du den Dateihandler nicht auf binmode gestellt hast (JPEGs sind bekanntlich keine Textdateien):

    open(DATA, "$bildzumlesen");
    binmode(DATA);
    ^^^^^^^^^^^^^^
    $im_medium->Read(file=>DATA);
    close(DATA);

    wobei ich dann auch nicht verstehe, warum er colorspace ausgibt... Naja, vielleicht ist colorspace ganz am Anfang des Headers, der noch korrekt eingelesen wird.

    Viele Grüsse

    Philipp

    1. Hallo Philipp

      Hm. Könnte mir denken, dass es daran liegt, dass du den Dateihandler nicht auf binmode gestellt hast (JPEGs sind bekanntlich keine Textdateien):

      open(DATA, "$bildzumlesen");
      binmode(DATA);
      ^^^^^^^^^^^^^^
      $im_medium->Read(file=>DATA);
      close(DATA);

      Danke für deinen Tipp, aber so gehts leider auch nicht. Hat vielleicht jemand noch eine Idee?

      Gruss, sprain

      1. Halihallo sprain

        Hm. Könnte mir denken, dass es daran liegt, dass du den Dateihandler nicht auf binmode gestellt hast (JPEGs sind bekanntlich keine Textdateien):

        open(DATA, "$bildzumlesen");
        binmode(DATA);
        ^^^^^^^^^^^^^^
        $im_medium->Read(file=>DATA);
        close(DATA);

        Danke für deinen Tipp, aber so gehts leider auch nicht. Hat vielleicht jemand noch eine Idee?

        To read an image in the GIF format from a PERL filehandle, use:
            $image = Image::Magick->new;    open(IMAGE, 'image.gif');    $image->Read(file=>\*IMAGE);    close(IMAGE);

        '*' fehlt (Referenz auf den Handler!). Schau dir mal:

        http://www.imagemagick.org/www/perl.html an.

        Viele Grüsse

        Philipp

        1. Auch hallihallo :-)

          '*' fehlt (Referenz auf den Handler!). Schau dir mal:

          http://www.imagemagick.org/www/perl.html an.

          Danke für den Tipp.
          Habe übrigens in der Zwischenzeit rausgefunden, dass es mit gifs geht, baer mit jpgs nicht. Bin nun am installieren von libjpeg & co, dann klappt hoffentlich auch das.

          Danke für deine Hilfe!
          Gruss, sprain