webForumDet fria alternativet

Varför fungerar inte min thumb funktion?!

PHP

0 svar · 298 visningar · startad av jacobrudenstam

Medlem sedan mars 20098 inlägg
Frågan#1

Min thumb funktion skapar bara svarta jpg bilder av mina bilder. Koden för att ladda upp originalbilden fungerar men istället för att skapa en thumb så gör den en svart bild med rätt pixel propotioner. Såhär ser koden ut:

Formuläret som laddar upp original bilden:

        <?php if (isset($_POST['SUBMIT'])) {
		$tmpfil=$_FILES["fil"]["tmp_name"];
		print "$tmpfil <br>";
		$fil=$_FILES["fil"]["name"];
		print "$fil";
		move_uploaded_file("$tmpfil", "images/$fil");
//Skapar och sparar tumnageln
	  include_once('createThumb.php'); //inkluderar funktionen som skapar tumnageln
      $source="images/$fil";
	  $dest ="thumb/$fil";
	  $sThumb = "thumb/$fil";
      if(createThumb($fil,$sThumb,504,336)) $uploadReport[] = "Tumnagel sparad.";
      else $uploadReport[] = "Tumnageln kunde ej skapas.";
		} ?>
      <form action="<?php echo $editFormAction; ?>" method="POST" enctype="multipart/form-data" name="form1" id="form1">
        <table width="200" border="0">
          <tr>
            <td align="right" valign="top" scope="col"><p>Rubrik:</p></td>
            <th scope="col"><label>
              <input name="TITLE" type="text" id="TITLE" />
            </label></th>
          </tr>
          <tr>
            <td align="right" valign="top"><p>Text:</p></td>
            <td><label>
              <textarea name="TEXT" rows="4" id="TEXT"></textarea>
            </label></td>
          </tr>
          <tr>
            <td align="right" valign="top"><p>Bild:</p></td>
            <td><label>
              <input name="fil" type="file"/>
            </label></td>
          </tr>
          <tr>
            <td><input name="IMAGE" type="hidden" id="IMAGE" value="img src='<?php echo $sThumb; ?>'" /></td>
            <td><label>
              <input type="submit" name="SUBMIT" id="SUBMIT" value="Skicka" />
            </label></td>
          </tr>
        </table>
        <input type="hidden" name="MM_insert" value="form1" />
      </form>

createThumb.php:

<?php
function createThumb($source, $dest, $newWidth = 504, $newHeight = 336, $quality = 100) 
{
   /*
      Skriven av Rickard Claeson, 2006-11-06
      Skapar en tumnagelbild av ett orginal med fokus på orginalets mittpunkt. 
      Returnerar false eller true beroende om förminskningen lyckades
      $source    = orginalbildens adress. Tex: 'images/bilden.jpg'
      $dest      = den skapade tumnagelns adress. Tex: 'thumbs/bildenThumb.jpg'
      $newWidth  = höjden tumnageln skall ha
      $newHeight = bredden tumnageln skall ha
      $quality   = om komprimering skall ske -minska neråt. 100 innebär ingen komprimering.
   */
   
   $x = 0;
   $y = 0;
   
   list($width, $height) = getimagesize($source);
   
   $oldWidth = $width;
   $width = ceil($newWidth * ($height/$newHeight));
   
   if(($newHeight / $newWidth) < ($height / $oldWidth))
   {
      $diff = $oldWidth * (($height/$oldWidth) - ($newHeight/$newWidth));
      $width -= $diff;
      $height -= $diff;
      $y = $diff/2;
   }
   $x = ceil(($oldWidth-$width) / 2);
   
   $new_img = imagecreatetruecolor($newWidth,$newHeight);
   $img = imagecreatefromjpeg($source);
   imagecopyresampled($new_img,$img,0,0,$x,$y,$newWidth,$newHeight,$width,$height);
   imagejpeg($new_img,$dest,$quality);
   
   if(is_file($dest)) return(true);
   else return(false);
}  
?>

Thumb funktionen hittade jag på PHPp. Använder jag den helt fel eller vad är problemet? Dessutom så fungerar inte IMAGE fältet i formuläret som ska skicka en bildlänk till den uppladdade thumben till min DB, den skickar ingen PHP info, vad kan det bero på?

270 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)