[GD] Imagemagick- zu GD-Befehlen konvertieren

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [GD] Imagemagick- zu GD-Befehlen konvertieren

    Ich habe ein kleines Problem. In einem Gallery-script das ich verwenden möchte wird mit Imagemagick Befehlen gearbeitet. Imagemagick wird aber von meinem Hoster nicht unterstützt. Ich würde gerne die IM-Befehle in GDlib befehle umschreiben. Dazu fehlen mir aber leider die Kenntnisse im Umgang mit dem Befehlen von IM und GD.

    erster Codeschnipsel:
    $make_magick = system(''.$this->convert_path.'convert -size '.$this->thumb_width.''.$x.''.$new_h.' -geometry '.$this->thumb_width.''.$x.''.$new_h.' "'.$file.'" "'.$cache_path.''.$thumb.'"', $retval);

    zweiter Codeschnipsel:
    $make_magick = system(''.$this->convert_path.'convert -size '.$this->thumb_width.''.$x.''.$new_h.' -geometry '.$this->thumb_width.''.$x.''.$new_h.' "'.$file.'" "'.$cache_path.''.$thumb.'" >/dev/null 2>/dev/null', $retval);


    Ich hoffe mir kann jemand dabei helfen. Bin total verzweifelt...

    Greets
    cmd

  • #2
    also soll dir das jemand machen?

    So ausnahmslos ist das übrigens nicht möglich.

    Kommentar


    • #3
      Ja das wäre sehr hilfreich wenn mir das jemand machen könnte.
      Kenn mich wie gesagt nicht mit GD und IM aus. Meiner Meinung nach dürfte das auch nicht so viel arbeit sein hab im Code nur diese 2 stellen gefunden aus den ich schließe das es IM-Befehle sind.
      Aber für alle fälle hängt ich hier mal das script an das für die thumbs und so zuständig is.

      Würde mich tierisch freuen wenn sich jemand meinem Problem annimmt.

      Gruß
      cmd
      Angehängte Dateien

      Kommentar


      • #4
        Original geschrieben von cmd
        Ja das wäre sehr hilfreich wenn mir das jemand machen könnte.
        *verschieb* zur Projekthilfe.

        Meiner Meinung nach dürfte das auch nicht so viel arbeit sein hab im Code nur diese 2 stellen gefunden aus den ich schließe das es IM-Befehle sind.
        Ich denke, was den Aufwand angeht, täuschst du dich da ...


        Bei IM rufst du einfach nur ein externes Programm mit ein paar Parametern auf, und sagst dem "da, mach mal".

        Die GD-Lib lässt sich aber nicht wie ein externes Programm aufrufen, dem man kurz sagt, was man haben will, und das dann schwuppdiwupp bekommt.
        Sondern die GD-Lib bietet einzelne PHP-Funktionen zur Grafikmanipulation an - was diese tun sollen, muss dann aber einzeln ausprogrammiert werden, das ist nicht so trivial.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          am ehesten geht das noch mit einer GD-Wrapper-Klasse, wie es sie auf phpclasses.org einige gibt, wo dann eine PHP-Datei die entsprechenden Parameter entgegennimmt und verarbeitet.

          Kommentar


          • #6
            Danke schonmal für die Infos. Das mit der GD-Wrapper-Klasse war n guter anhaltspunkt. Ich habe da auch was gefunden auf der Seite.
            Leider hab ich da immer noch ein Problem mit.
            Hoffe mir kann da jemand helfen ich poste mal was ich geändert habe und füge das GD-Script als anhang an. Oh nein udn ich hab gerade noch weiter unten ein paar zeilen gefunden in dem auch IM verwendet wird.
            Ich würde mich wirklich sehr freuen wen sich ejmand mal das ganze script anschauen könnte der mehr ahnung hat als ich und das umschreiben könnte.

            Das hab ich aus den zeieln die ich oben gepostet hab gemacht:
            $rimg=new RESIZEIMAGE($this->convert_path);
            echo $rimg->error();
            $rimg->resize_limitwh($this->thumb_width,$new_h,$newfile=NULL);
            $rimg->close();


            ich steige da langsam nicht mehr durch was ich wie verändern muss. Das GD-Script scheint aber recht einfach aufgebaut zu sein. nur ich komme mit dem original-script nicht mehr klar.


            Gruß
            cmd
            Angehängte Dateien

            Kommentar


            • #7
              Der erste Codeschnipsel müsste mit GD
              ungefähr so machbar sein:

              PHP-Code:
              # Alte Breite und Höhe auslesen.
              list($width$height) = getimagesize($file);

              # Neues Bild mit neuer Breite und Höhe erzeugen.
              $new_image imagecreatetruecolor($this->thumb_width$new_h);
              # Ich gehe hier davon aus, dass du jpg's hast...
              $image imagecreatefromjpeg($file);
              # Altes Bild in neue Größe convertieren.
              imagecopyresampled($new_image$image0000$this->thumb_width$new_h$width$height);

              # Output
              imagejpeg($new_image$cache_path $thumb75); 
              Variablen müssen vielleicht abgeändert werden damit sie nicht früher deklarierte überschreiben.
              Der zweite schnipsel müsste eigentlich auch so gehen,
              da fehlt mir nur der Kontext warum die Ausgabe nach /dev/null geleitet wird...

              Gruß,
              moritz

              Kommentar


              • #8
                Juhuu. Es geht voran
                Ein riesen Dankeschön an TheMo! Das hat mir sehr geholfen.
                Also die thumbs werden nun erzeugt. Leider sind in dem Script noch ein paar Zeilen die auf IM basieren. Vielleicht könntest du mir damit noch helfen?

                Ich poste diesmal lieber die Zeilen und füge das Script so wie es nun aussieht als Anhang hinzu. Nehme an das ist besser und einfacher zum durchzusteigen.

                Umzuschreibende Zeilen:
                655-659
                667-671

                Mehr dürfte es meiner Meinung nach nicht sein.

                Gruß
                cmd



                PS: GD scheint ja garnicht so schwer zu sien muss ich feststellen.
                Leider scheint mir das bei IM nicht so der Fall zu sein...
                Angehängte Dateien

                Kommentar

                Lädt...
                X