[PHP] Berechnen von Bildgröße (verkleinern)

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Hapablap, 10. Februar 2009 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 10. Februar 2009
    Berechnen von Bildgröße (verkleinern)

    Hi,

    Kann mir jemand meine Mathahausaufgaben machen bitte? xD
    Also ich hab eine Klasse, die mir ein Bild hochläd, dieses wird verkleinert.
    Leider wird momentan nur die Bildgröße durch zwei geteilt.
    OK, ich kann natürlich feste Größen angeben, aber das Problem ist, wenn jemand eine Datei hochläd, die andere Proportionen hat, dann sieht das nicht mehr gut aus. Also, kann ich irgendwie berechnen, dass ich eine Höhe x haben will und dann die Breite y sich proportional korrekt anpasst? Und wenn mir nur jemand ein Stichwort gibt, einen Formelnamen, dann reicht mir das schon

    Danke schon mal,
    Hapablap
     
  2. 10. Februar 2009
    AW: Berechnen von Bildgröße (verkleinern)

    Rechne einfach das Verhältnis aus.
    $Breite = 500;
    $NewBreite = 300;
    $Hoehe = 400;

    $V = $Breite/$NewBreite;
    $NewHoehe = $Hoehe/$V;

    oder so.

    ^^
    Breite = $NewBreite
    Hoehe = $NewHoehe.
     
  3. 10. Februar 2009
    Zuletzt von einem Moderator bearbeitet: 16. April 2017
    AW: Berechnen von Bildgröße (verkleinern)

    Clientscript Php R=images Js / Download - RR:Suche

    da hast n fertiges script
     
  4. 10. Februar 2009
    AW: Berechnen von Bildgröße (verkleinern)

    Bitteschoen:

    PHP:
    <?  
    // Bilddaten feststellen  
      
    $size = getimagesize ( $_GET [ 'bild' ]);  
      
    $breite = $size [ 0 ];  
      
    $hoehe = $size [ 1 ];  

      
    //hier die Breite festlegen  
      
    $neueBreite = 100 ;  
      
    $neueHoehe = 100 // intval($hoehe*$neueBreite/$breite);  

      
    if( $size [ 2 ]== 1 ) {  
      
    // GIF  
      
    $altesBild = ImageCreateFromGIF ( $_GET [ 'bild' ]);  
      
    $neuesBild = ImageCreate ( $neueBreite , $neueHoehe );  
      
    ImageCopyResized ( $neuesBild , $altesBild , 0 , 0 , 0 , 0 , $neueBreite , $neueHoehe , $breite , $hoehe );  
      
    ImageGIF ( $neuesBild );  
      }  

      elseif(
    $size [ 2 ]== 2 ) {  
      
    // JPG  
      
    $altesBild = ImageCreateFromJPEG ( $_GET [ 'bild' ]);  
      
    $neuesBild = imagecreatetruecolor ( $neueBreite , $neueHoehe );  
      
    ImageCopyResized ( $neuesBild , $altesBild , 0 , 0 , 0 , 0 , $neueBreite , $neueHoehe , $breite , $hoehe );  
      
    ImageJPEG ( $neuesBild );  
      }  

      elseif(
    $size [ 2 ]== 3 ) {  
      
    // PNG  
      
    $altesBild = ImageCreateFromPNG ( $_GET [ 'bild' ]);  
      
    $neuesBild = imagecreatetruecolor ( $neueBreite , $neueHoehe );  
      
    ImageCopyResized ( $neuesBild , $altesBild , 0 , 0 , 0 , 0 , $neueBreite , $neueHoehe , $breite , $hoehe );  
      
    ImagePNG ( $neuesBild );  
      }  

    ?> 
     
  5. 10. Februar 2009
    AW: Berechnen von Bildgröße (verkleinern)

    OK, danke an alle, das müsste erstmal reichen

    - closed -

    Edit:

    Muss doch noch mal was fragen ... Also die Vorschläge waren echt super, smilin deins hab ich dann auch über Google gefunden xD und benutze es nun für meine Thumbs. Das ist dafür echt gut.
    Naja, mein Problem ist nur, ich möchte, dass ein Bild maximal 800x600 groß sein darf!
    Wenn jemand ein Bild hochläd, das 100x1000 ist, soll es später Xx600 groß sein.
    Wenn jemand eins hochläd, das 1000x100 groß ist, soll es 800xX groß sein.
    Wenn aber jemand ein Bild hochläd, das 1000x1000 groß ist, darf es höchstens 600x600 groß sein.
    Ich hoffe, ich konnte erklären, was ich meine. Es darf nicht über diesen "Rahmen" hinaus.
    Ich hab das jetzt so gemacht:

    PHP:
                 // Bildgroesse ermitteln
                
    $bildgroesse          getimagesize ( $datei [ 'tmp_name' ]);
                
    $bildbreite          $bildgroesse [ 0 ];
                
    $bildhoehe              $bildgroesse [ 1 ];
                
                
    // Bild verkleinern auf 800x600
                
    if( $bildbreite  800 )
                {
                    
    $teiler  $bildbreite  800 ;
                    
                    
    $im  = @ ImageCreateFromJPEG ( $datei [ 'tmp_name' ]);
                    
    $width  ImageSX ( $im );
                    
    $height  ImageSY ( $im );
                    
    $twidth  800 ;
                    
    $theight  $height  $teiler ;
                    
    $im2  imagecreatetruecolor ( $twidth , $theight );
                    
    ImageCopyResized ( $im2 , $im , 0 , 0 , 0 , 0 , $twidth , $theight , $width , $height );
                    
    ImageJpeg ( $im2 $datei [ 'tmp_name' ],  $quality );
                }
                elseif(
    $bildhoehe  600 )
                {
                    
    $teiler  $bildhoehe  600 ;
                    
                    
    $im  = @ ImageCreateFromJPEG ( $datei [ 'tmp_name' ]);
                    
    $width  ImageSX ( $im );
                    
    $height  ImageSY ( $im );
                    
    $twidth  $width  $teiler ;
                    
    $theight  600 ;
                    
    $im2  imagecreatetruecolor ( $twidth , $theight );
                    
    ImageCopyResized ( $im2 , $im , 0 , 0 , 0 , 0 , $twidth , $theight , $width , $height );
                    
    ImageJpeg ( $im2 $datei [ 'tmp_name' ],  $quality );
                }
    Ich glaube aber, das stimmt so nicht. Ich habe grade auch ein Bild verkleinert, das dann genau 800x600 groß sein sollte, war dann aber 800x640 groß.
     
  6. 11. Februar 2009
    AW: Berechnen von Bildgröße (verkleinern)

    Ändere das elseif in ein normales if dann gehts auch!

    Hab dein Script mal verkürzt.
    PHP:
      $bildgroesse  getimagesize ( $datei [ 'tmp_name' ]);
      
    $width  $bildgroesse [ 0 ];
      
    $height  $bildgroesse [ 1 ];
      
    $max_width  800 ;
      
    $max_height  600 ;
      if(
    $width  $max_width  ||  $height  $max_height )
      {
        if(
    $width  $max_width )
        {
          
    $teiler  $width  $max_width ;
          
    $height  /=  $teiler ;
          
    $width  $max_width ;
        }
        if(
    $height  $max_height )
        {
          
    $teiler  $height  $max_height ;
          
    $width  /=  $teiler ;
          
    $height  $max_height ;
        }    
        
    $im  = @ ImageCreateFromJPEG ( $datei [ 'tmp_name' ]);
        
    $im2  imagecreatetruecolor ( $width , $height );
        
    ImageCopyResized ( $im2 , $im , 0 , 0 , 0 , 0 , $width , $height , $bildgroesse [ 0 ], $bildgroesse [ 1 ]);
        
    ImageJpeg ( $im2 , $datei [ 'tmp_name' ],  $quality );
      }
    MFG Ralphwiggum
     
  7. 13. Februar 2009
    AW: Berechnen von Bildgröße (verkleinern)

    Super! Danke

    - closed -
     
  8. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.