Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit Bildupload

Einklappen

Neue Werbung 2019

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

  • Problem mit Bildupload

    Hallo,

    Ich hab zwei kleine Probleme mit meinem Bildupload. Ich hoffe ihr könnt mir dabei helfen.

    Vielleicht zuerst einmal wie mein Upload funktioniert [Quellcode dann weiter unten]:

    Dem Skript sollte ein Bild per upload übergeben werden. Also prüft das Script erstmal ob eines angegeben wurde. Danach wird überprüft, ob es sich dabei um eine Datei mit zulässiger Endung handelt.
    Danach wird mit imageCreateFrom[Type]() eine Instanz des Bildes erzeugt, das ganze mit imageCopyResized() mit zulässigen Größen in ein neues Bild kopiert und außerdem in einem zweiten ein thumb erzeugt. Mit imageJpeg(resource, [Pfad]) werden dann beide diese Bilder gespeichert.

    Funktioniert soweit ja Perfekt, aber treten dabei 2 Probleme auf:

    1)
    Die Bilder sind nachher völlig im A****, und ich weiss ned woran das liegt.

    Hier mal ein Beispiel:
    Vorher: http://www.cineast.at/images/vorher.jpg
    Nachher: http://www.cineast.at/images/nachher.jpg

    2)
    Manchmal, also nicht bei jedem Bild aber kommt eben vor, kommt folgender Fehler:

    Warning: imagecopyresized(): Invalid image dimensions in /home/www/web313/html/fotos.php on line 137

    Hier mal ein Beispiel wann (mit welchen werten) der fehler kommt:
    Code:
    imagecopyresized($thumb, $image, -15, 0, 0, 0, 109, 80, 470, 344)
    Jetzt ist das einzige wo ich mir vorstellen könnte, dass der Fehler da liegt das -15, aber ein negativer Wert tritt immer entweder auf der ersten oder zweiten Position nach $image auf und der Fehler kommt nicht immer.


    Hier noch der relevante Quellcode:
    PHP-Code:
    switch($ending[$last])
            {
              case 
    'jpg': case 'jpeg':
                
    $image_old imageCreateFromJpeg($_FILES['pic']['tmp_name']);
                break;

              case 
    'gif':
                
    $image_old imageCreateFromGif($_FILES['pic']['tmp_name']);
                break;
                
              case 
    'png':
                
    $image_old imageCreateFromPng($_FILES['pic']['tmp_name']);
                break;
            }
            
            if(
    $image_old)
            {
            
              
    $size getimagesize($_FILES['pic']['tmp_name']);

              
    $new[1] = $size[1];
              
    $new[0] = $size[0];
              
              if(
    $size[0] > 470)
              {
                
    $fak $size[0]/470;
                
    $new[0] = $size[0]/$fak;
                
    $new[1] = $size[1]/$fak;
              }
              
              if(
    $new[1] > 600)
              {
                
    $fak $new[1]/600;
                
    $new[0] = $new[0]/$fak;
                
    $new[1] = $new[1]/$fak;
              }
              
              
    $image imageCreate($new[0], $new[1]);
              
    imageCopyResized($image$image_old0000$new[0], $new[1], $size[0], $size[1]);
            
              
    $thumb imageCreate(80,80);

              if(
    $new[0] > $new[1])
              {
                
    $fak $new[1]/80;
                
    $thumbs[0] = round($new[0]/$fak0);
                
    $thumbs[1] = round($new[1]/$fak0);

                
    $minus = -($thumbs[0]-80)/2;
                
    imageCopyResized($thumb$imageround($minus,0), 000$thumb[0], $thumb[1], $new[0], $new[1]);
              } else
              {
                
    $fak $new[0]/80;
                
    $thumbs[0] = round($new[0]/$fak0);
                
    $thumbs[1] = round($new[1]/$fak0);

                
    $minus = -($thumbs[1]-80)/2;
                
    imageCopyResized($thumb$image0round($minus,0), 00$thumbs[0], $thumbs[1], $new[0], $new[1]);
              }
              
              
              
    imageJpeg($image'fotos/'$cat_id .'/'$foto_id .'.jpg');
              
    imageJpeg($thumb'fotos/'$cat_id .'/minis/'$foto_id .'.jpg'); 

  • #2
    http://www.php.net/imagecreatetruecolor

    Kommentar


    • #3
      ggf. auch ImageCopyResampled()

      Kommentar

      Lädt...
      X