Fabian S.: ImageCopyResized

hallo!

wie schaffe ich es ein mit ImageCopyResized erstelltes Preview im <img src=""> tag auszugeben?

muss ich es vorher speichern?

danke schonmal

mfg
fabian

  1. Hi Fabian!

    hallo!

    wie schaffe ich es ein mit ImageCopyResized erstelltes Preview im <img src=""> tag auszugeben?

    muss ich es vorher speichern?

    danke schonmal

    mfg
    fabian

    Ich glaube ein guter weg ist, wenn du vorher speicherst:

    z. B. mit imagejpeg.

    hierbei ist der Pfad mit $str_src anzugeben:

    ImageCopyResized($img_dest, $img_src, 0, 0, 0, 0, $int_width, $int_height, ImageSX($img_src), ImageSY($img_src));

    imagejpeg($img_dest, $str_src, $int_qualitaet);

    dein Ursprungsbild ist $img_src, dein neues (verändertes) Bild ist $img_dest.

    Hats geholfen??

    1. Hats geholfen??

      noch nicht wirklich...

      $pre_widht= 150;
      $pre_height= 100;
      $up_dir= "upload";

      über ein form. kommen
      $upload_member_name= "xxx";
      $up_file_name= "xxx.jpg";        <---- Wird upgeloaded
      rein.

      jetzt dein source umgeschrieben:

      $pre_in= "$up_dir/$upload_member_name/$up_file_name";
      $pre_out= "pre_".$up_file_name;

      ImageCopyResized($pre_out, $pre_in, 0, 0, 0, 0, $pre_widht, $pre_height, ImageSX($pre_in), ImageSY($pre_in));

      imagejpeg($pre_out, "$up_dir/$upload_member_name", 50);

      erhalte dann
      Warning: Supplied argument is not a valid Image resource

      ??

      1. $pre_widht= 150;
        $pre_height= 100;
        $up_dir= "upload";

        über ein form. kommen
        $upload_member_name= "xxx";
        $up_file_name= "xxx.jpg";        <---- Wird upgeloaded
        rein.

        jetzt dein source umgeschrieben:

        $pre_in= "$up_dir/$upload_member_name/$up_file_name";
        $pre_out= "pre_".$up_file_name;

        Sorry, dachte du hattest das Bild schon geladen. So müsste es klappen:

        $img_src = ImageCreateFromJPEG($pre_in);
        $img_dest = imagecreate($pre_width, $pre_height);

        ImageCopyResized($img_dest, $img_src, 0, 0, 0, 0, $pre_widht, $pre_height, ImageSX($img_src), ImageSY($img_src));

        imagejpeg($img_src, "$up_dir/$upload_member_name/".$pre_out, 50);

        Zuerst erzeugen wir zwei Bild-Objekte (gekennzeichnet mit $img_). Das eine laden wir von deinem $pre_in (Typ: String) - Pfad.

        ImageCopyResized erzeugt wider ein Bild-Objekt ($img_dest). Und dieses muss wieder gespeichert werden als .jpg (in deinem Pfad [Natürlich musst du auf das Verzeichnis schreibreichte haben 777).

        Gehts jetzt??

        1. Gehts jetzt??

          fast ;)

          also mittlerweile wird entweder ein pre_file.jpg erstellt mit genau der größe des original bildes, oder ein 0byte großes. fehler gibts aber auch keine..

          -------------

          $up_dir= "upload";
          $upload_member_name= "member01";
          $up_file_name= "001.jpg";

          $pre_widht= "150";
          $pre_height= "100";

          $pre_in= "$up_dir/$upload_member_name/$up_file_name";
          $pre_out= "pre_".$up_file_name;

          $img_src = ImageCreateFromJPEG($pre_in);
          $img_dest = imagecreate($pre_width, $pre_height);

          ImageCopyResized($img_dest, $img_src, 0, 0, 0, 0, $pre_widht, $pre_height, ImageSX($img_src), ImageSY($img_src));

          imagejpeg($img_dest, "$up_dir/$upload_member_name/".$pre_out, 50);

          -----------

          kannst du da noch was endecken was nicht funktioniert?

          an der php/gd vers. liegts ganz sicher nicht.

          vielen dank

          1. Gehts jetzt??

            fast ;)

            also mittlerweile wird entweder ein pre_file.jpg erstellt mit genau der größe des original bildes, oder ein 0byte großes. fehler gibts aber auch keine..

            Du hast einen Tippfehler!!!!!

            du musst dich entscheiden ob du width oder widht schreibts!!!!
            denn im ImageCopyResized hat der widht = 0 d. h. dein bild wird 0 breit. wenn du dort width schreibst funkts.

            Maddin


            $up_dir= "upload";
            $upload_member_name= "member01";
            $up_file_name= "001.jpg";

            $pre_widht= "150";
            $pre_height= "100";

            $pre_in= "$up_dir/$upload_member_name/$up_file_name";
            $pre_out= "pre_".$up_file_name;

            $img_src = ImageCreateFromJPEG($pre_in);
            $img_dest = imagecreate($pre_width, $pre_height);

            ImageCopyResized($img_dest, $img_src, 0, 0, 0, 0, $pre_widht, $pre_height, ImageSX($img_src), ImageSY($img_src));

            imagejpeg($img_dest, "$up_dir/$upload_member_name/".$pre_out, 50);


            kannst du da noch was endecken was nicht funktioniert?

            an der php/gd vers. liegts ganz sicher nicht.

            vielen dank

  2. hallo!

    wie schaffe ich es ein mit ImageCopyResized erstelltes Preview im <img src=""> tag auszugeben?

    Du schreibst ein PHP-Script, welches als Mime-Typ "image/gif" oder "image/jpg" zurückgibt (header-Funktion) und dann die verkleinerten Bilddaten. Einbindung in HTML funktioniert über das <img>-Tag.

    muss ich es vorher speichern?

    Das spart Rechenzeit, weil die Bilder alle komplett auf dem Server vorliegen und nicht ständig neu berechnet werden müssen, aber es ist nicht zwingend notwendig.

    - Sven Rautenberg