Ankündigung

Einklappen
Keine Ankündigung bisher.

Bild Resize funktioniert nicht

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

  • Bild Resize funktioniert nicht

    Guten Tag zusammen.
    Ich habe ein Upload Script wo ich das Bild hochlade, es auf 500x300 Resize und gleichzeitig auch noch auf 70x70 für thumbnail. Das funktioniert alles schön und gut, aber bei Bildern ab 1300x1300 verkleinert er nur auf das 1te Bild auf 500x300. Das Thumbnail erstellt er nicht...Ist das vielleicht so weil es von PHP her nicht geht? also das Bild das auf Thumbnail verkleienrt werden soll ist das Orginale...

    Hier der Code :

    PHP-Code:
    $PicPathIn="images/TinySlideshow/images/";
                 
    $PicPathOut="images/TinySlideshow/photos/";
                 
    $thumbPath="images/TinySlideshow/thumbnails/";

                    
    // Orginalbild
                    
    $bild="$id"."$bild_name";

                    
    // Bilddaten ermitteln + resizen
                    
    $size=getimagesize("$PicPathIn"."$bild");
                    
    $breite=$size[0];
                    
    $hoehe=$size[1];
                    if(
    $hoehe 300)
                    
                    {
                        
    $neueHoehe=300;
                        
    $neueBreite=intval($breite*$neueHoehe/$hoehe);

                        if(
    $size[2]==1) {
                        
    // GIF
                        
    $altesBild=ImageCreateFromGIF("$PicPathIn"."$bild");
                        
    $neuesBild=imageCreate($neueBreite,$neueHoehe);
                        
    imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
                        
    imageGIF($neuesBild,"$PicPathOut"."$bild");
                            
                            if(
    $size[2]==1)
                            {
                                    if(
    $hoehe 1300 || $breite >1300)
                                    {
                                        
    $thumbHoehe=75;
                                        
    $thumbBreite=intval($breite*$thumbHoehe/$hoehe);
                                        
                                        
    $altesBild=ImageCreateFromGIF("$PicPathOut"."$bild");
                                        
    $neuesBild=imageCreate($thumbBreite,$thumbHoehe);
                                        
    imageCopyResized($neuesBild,$altesBild,0,0,0,0,$thumbBreite,$thumbHoehe,$breite,$hoehe);
                                        
    ImageGIF($neuesBild,"$thumbPath"."$bild");    
                                    }
                                    
    $thumbHoehe=75;
                                    
    $thumbBreite=intval($breite*$thumbHoehe/$hoehe);
                                    
                                    
    $altesBild=ImageCreateFromGIF("$PicPathIn"."$bild");
                                    
    $neuesBild=imageCreate($thumbBreite,$thumbHoehe);
                                    
    imageCopyResized($neuesBild,$altesBild,0,0,0,0,$thumbBreite,$thumbHoehe,$breite,$hoehe);
                                    
    ImageGIF($neuesBild,"$thumbPath"."$bild");
                            }
                        }

                        if(
    $size[2]==2) {
                        
    // JPG
                        
    $altesBild=ImageCreateFromJPEG("$PicPathIn"."$bild");
                        
    $neuesBild=imagecreatetruecolor($neueBreite,$neueHoehe);
                        
    imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
                        
    ImageJPEG($neuesBild,"$PicPathOut"."$bild");
                        
                            if(
    $size[2]==2)
                            {
                                if(
    $hoehe 1300 || $breite >1300)
                                {
                                    
    $thumbHoehe=75;
                                    
    $thumbBreite=intval($breite*$thumbHoehe/$hoehe);
                                    
                                    
    $altesBild=ImageCreateFromJPEG("$PicPathOut"."$bild");
                                    
    $neuesBild=imagecreatetruecolor($thumbBreite,$thumbHoehe);
                                    
    imageCopyResized($neuesBild,$altesBild,0,0,0,0,$thumbBreite,$thumbHoehe,$breite,$hoehe);
                                    
    ImageJPEG($neuesBild,"$thumbPath"."$bild");    
                                }
                                
    $thumbHoehe=75;
                                
    $thumbBreite=intval($breite*$thumbHoehe/$hoehe);
                                
                                
    $altesBild=ImageCreateFromJPEG("$PicPathIn"."$bild");
                                
    $neuesBild=imagecreatetruecolor($thumbBreite,$thumbHoehe);
                                
    imageCopyResized($neuesBild,$altesBild,0,0,0,0,$thumbBreite,$thumbHoehe,$breite,$hoehe);
                                
    ImageJPEG($neuesBild,"$thumbPath"."$bild");
                            }
                        }

                        if(
    $size[2]==3)
                        {
                        
    // PNG
                        
    $altesBild=ImageCreateFromPNG("$PicPathIn"."$bild");
                        
    $neuesBild=imagecreatetruecolor($neueBreite,$neueHoehe);
                        
    imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
                        
    ImagePNG($neuesBild,"$PicPathOut"."$bild");
                        
                            if(
    $size[2]==3)
                            {
                                    if(
    $hoehe 1300 || $breite >1300)
                                    {
                                        
    $thumbHoehe=75;
                                        
    $thumbBreite=intval($breite*$thumbHoehe/$hoehe);
                                        
                                        
    $altesBild=ImageCreateFromPNG("$PicPathOut"."$bild");
                                        
    $neuesBild=imagecreatetruecolor($thumbBreite,$thumbHoehe);
                                        
    imageCopyResized($neuesBild,$altesBild,0,0,0,0,$thumbBreite,$thumbHoehe,$breite,$hoehe);
                                        
    ImagePNG($neuesBild,"$thumbPath"."$bild");    
                                    }
                                    
    $thumbHoehe=75;
                                    
    $thumbBreite=intval($breite*$thumbHoehe/$hoehe);
                                    
                                    
    $altesBild=ImageCreateFromPNG("$PicPathIn"."$bild");
                                    
    $neuesBild=imagecreatetruecolor($thumbBreite,$thumbHoehe);
                                    
    imageCopyResized($neuesBild,$altesBild,0,0,0,0,$thumbBreite,$thumbHoehe,$breite,$hoehe);
                                    
    ImagePNG($neuesBild,"$thumbPath"."$bild");
                            }
                        }
                    } 
    Ich hoffe Ihr könnt mir sagen an was es liegt.

    Vielen Dank


  • #2
    Gibts ne Fehlermeldung?
    Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

    Kommentar


    • #3
      ist doch auch logisch, du hast eine if abfrage

      PHP-Code:
       if($hoehe 1300 || $breite >1300)
                                      {
                                          
      $thumbHoehe=75;
                                          
      $thumbBreite=intval($breite*$thumbHoehe/$hoehe);
                                          
                                          
      $altesBild=ImageCreateFromGIF("$PicPathOut"."$bild");
                                          
      $neuesBild=imageCreate($thumbBreite,$thumbHoehe);
                                          
      imageCopyResized($neuesBild,$altesBild,0,0,0,0,$thumbBreite,$thumbHoehe,$breite,$hoehe);
                                          
      ImageGIF($neuesBild,"$thumbPath"."$bild");    
                                      } 
      und keine else anweisung, wieso egentlich abfragen ob das bild kleiner als 1300 ist? wieso nicht einfach resizen , es seidenn das bild ist kleiner als 500x500 dann nicht resizen da es ja kein sinn ergeben würde ein bild von 500x500 auf 500x500 zu verkleinern
      apt-get install npm -> npm install -g bower -> bower install <package> YOLO https://www.paypal.me/BlackScorp | Mein Youtube PHP Kanal: https://www.youtube.com/witalimik

      Kommentar


      • #4
        PHP-Code:
                            if($size[2]==1) {
                            
        // GIF
                            
        $altesBild=ImageCreateFromGIF("$PicPathIn"."$bild");
                            
        $neuesBild=imageCreate($neueBreite,$neueHoehe);
                            
        imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
                            
        imageGIF($neuesBild,"$PicPathOut"."$bild");
                                
                                if(
        $size[2]==1) { ... 
        Was soll denn eigentlich der Quatsch, dass immer zwei IFs ineinander verschachtelt sind, die genau das gleiche Abfragen?
        (Vermutung: Copy&Paste ohne Nachzudenken?)


        Und auch in Sachen Redundanz ist der Code ein Musterbeispiel dafür, wie man es nicht machen sollte. Für die drei Bildtypen GIF, JPG und PNG wird generell jedes Mal das gleiche gemacht, nur die Funktionen zum Einlesen/Ausgeben des Bildes sind jeweils unterschiedliche - was dazwischen passiert, kann man also auch gut noch um einiges kürzen, in dem man gleiche Codeteile zusammenfasst oder auslagert.

        Kommentar

        Lädt...
        X