Ankündigung

Einklappen
Keine Ankündigung bisher.

grafik zweimal resizen und hochladen

Einklappen

Neue Werbung 2019

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

  • grafik zweimal resizen und hochladen

    hi ich bastle gerade an einem script das grafiken hochladen soll.

    sagen wir die grafik dich ich hochlade ist 1280 x 1024 px groß.

    nun soll ein thumb erstellt werden mit 150 x X pixel eine weitere grafik in der größe 400 x X pixel sowie das eigentliche pic in der größe 1280 x 1024 hochgeladen werden.

    Mein Problem aktuell ist, das immer nur die erste verkleinerung also 150 x X hochgeladen wird:

    So sieht mein Script aktuell aus:

    PHP-Code:
    $picsize getimagesize($screenshot2); 
    $picsize_breite $picsize[0]; 
    $hoehe $picsize[1];  

    if(
    $picsize_breite 150){
    // ---------------------------------------------------------------------------- //
    $BILD "$screenshot2";
    $BILD1 "$screenshot2";
    $quali '100';
    $skalierung 150 $picsize_breite;
    // ---------------------------------------------------------------------------- //

    function bild_resize($altes_bild$neues_bild$stufe$quali) {

        
    // altes Bild
        
    $im1 imageCreateFromJPEG($altes_bild);
        
    $bb imageSX($im1);
        
    $hh imageSY($im1);

        
    // neues Bild
        
    $im2 ImageCreateTrueColor($bb $stufe$hh $stufe);
        
    imagecopyresampled($im2$im10000$bb $stufe$hh $stufe$bb$hh);

        
    // bild erstellen
        
    imagejpeg ($im2$neues_bild$quali);

        
    // speicher freigeben
        
    imageDestroy($im1);
        
    imageDestroy($im2);
        }

    bild_resize($BILD$BILD1$skalierung$quali);


    }


    //**********************THUMB UPLOAD*******************************************


    $_FILES['screenshot']['name'] = $zufall.'_'.$_FILES['screenshot']['name']; 
    if(
    move_uploaded_file($_FILES['screenshot']['tmp_name'],
    $screens_uploaddir $_FILES['screenshot']['name'])){
    $screen1= ($_FILES['screenshot']['name']); 

    ich hoffe ihr könnt mir helfen

  • #2
    Du kannst auch 2mal imagejpeg benutzen, solange nicht imageDestroy benutzt worden ist.

    Kommentar


    • #3
      Willst du die Funktion wiederverwendbar machen, was nur sinnvoll ist, dann solltest du in deinem Skript die Funktion besser 2x auf das upgeloadede Bild aufrufen. So kannst du diese Funktion auch für andere Anwendungsfälle verwenden. Anderer Ansatz ist, CIX's Variante zu nutzen, jedoch die Parameter der Funktion hinsichtlich Skalierungsfaktor für Bild1 und Bild2 zu erweitern.
      Viele Grüße,
      Dr.E.

      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      1. Think about software design [B]before[/B] you start to write code!
      2. Discuss and review it together with [B]experts[/B]!
      3. Choose [B]good[/B] tools (-> [URL="http://adventure-php-framework.org/Seite/088-Why-APF"]Adventure PHP Framework (APF)[/URL][URL="http://adventure-php-framework.org"][/URL])!
      4. Write [I][B]clean and reusable[/B][/I] software only!
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      Kommentar


      • #4
        Skalierungsfaktor
        Das wir er hoffentlich auch selber wissen

        Kommentar


        • #5
          @CIX88: Schau mer mal...
          Viele Grüße,
          Dr.E.

          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          1. Think about software design [B]before[/B] you start to write code!
          2. Discuss and review it together with [B]experts[/B]!
          3. Choose [B]good[/B] tools (-> [URL="http://adventure-php-framework.org/Seite/088-Why-APF"]Adventure PHP Framework (APF)[/URL][URL="http://adventure-php-framework.org"][/URL])!
          4. Write [I][B]clean and reusable[/B][/I] software only!
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

          Kommentar


          • #6
            Ich komme damit gar nicht klar, muss ich die Grafik nun auch zweimal hochladen oder wie?

            Ich hab den Code nur von CIX88 aufgeschnappt und etwas angepasst, aber wie er genau funktioniert weiß ich leider nicht. Ich hoffe ihr könnt mir helfen wie genau ich das nun machen soll

            Kommentar


            • #7
              Dein Originlabild steht doch schon in imageCreateFromJPEG().
              Also musst du nichts 2mal hochladen.

              Und diesen Bereich
              PHP-Code:
               // neues Bild 
                  
              $im2 ImageCreateTrueColor($bb $stufe$hh $stufe); 
                  
              imagecopyresampled($im2$im10000$bb $stufe$hh $stufe$bb$hh); 

                  
              // bild erstellen 
                  
              imagejpeg ($im2$neues_bild$quali); 

                  
              // speicher freigeben 
                  
              imageDestroy($im2); 
              kannst du mehrmals benutzen, und das für unterschiedliche Größen.
              imageDestroy($im1); sollte dann aber zum Schluss kommen, wenn alle Bilder erstellt worden sind, sonst kannst du keine weiteren Bilder davon erstellen.

              Kommentar


              • #8
                ok, wenn ich das richtig sehe müsste es so dann funktionieren oder?

                PHP-Code:
                 // neues Bild
                    
                $im2 ImageCreateTrueColor($bb $stufe$hh $stufe);
                    
                imagecopyresampled($im2$im10000$bb $stufe$hh $stufe$bb$hh);

                    
                // bild erstellen
                    
                imagejpeg ($im2$neues_bild$quali);

                    
                // speicher freigeben
                    
                imageDestroy($im2);

                 
                // neues Bild
                    
                $im3 ImageCreateTrueColor($bb $stufe$hh $stufe);
                    
                imagecopyresampled($im2$im10000$bb $stufe$hh $stufe$bb$hh);

                    
                // bild erstellen
                    
                imagejpeg ($im3$neues_bild$quali);

                    
                // speicher freigeben
                    
                imageDestroy($im2);
                imageDestroy($im1); 
                nur wo bzw. wie stelle ich unterschiedliche größen ein und wie teile ich den grafiken unterschiedliche dateinamen zu wie z.b thumb_grafik1.jpg, normal_grafik1.jpg, big_grafik1.jpg

                Kommentar


                • #9
                  Hallo $$$ ThiKool $$$,

                  du hast in deinem Skript 2x imagejpeg ([..], $neues_bild, $quali); Tauscht du beim zweiten Mail $neues_bild gegen eine andere Variable aus, speichert dir die Funktion die Datei zweimal ab. Ist aber kein Fehler auf den du nicht auch selbst hättest kommen können.
                  Viele Grüße,
                  Dr.E.

                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                  1. Think about software design [B]before[/B] you start to write code!
                  2. Discuss and review it together with [B]experts[/B]!
                  3. Choose [B]good[/B] tools (-> [URL="http://adventure-php-framework.org/Seite/088-Why-APF"]Adventure PHP Framework (APF)[/URL][URL="http://adventure-php-framework.org"][/URL])!
                  4. Write [I][B]clean and reusable[/B][/I] software only!
                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

                  Kommentar


                  • #10
                    Vielleicht hilft das Beispiel besser:
                    http://www.cix88.de/cix_php/php_graf...ach_kopien.php

                    Kommentar


                    • #11
                      WOW vielen vielen Dank dafür!!!!

                      Kommentar

                      Lädt...
                      X