Avatar billede superdreng Nybegynder
03. marts 2008 - 13:05 Der er 2 kommentarer og
1 løsning

Hvorfor resizere den ikke billede?

Hej alle experter.

Jeg har fået sammensat et upload script, som nu kører helt perfekt, dog vil jeg gerne have at den resizer billederne, så de ikke ødelægger mit design.

Jeg har brugt jacobdo's resize script, men det ser ikke ud til at lykkes at implenter det ordenligt.

Kan i hjælpe mig? Har prøvet forskellige ting, men det jeg prøver på at redigere TEMP billed i stedet for at billed først lander på serveren´først.
Hvordan skal man gøre det?

Script:
<?php
ob_start();
if($_GET['funktion'] == "opretannon" && $_POST['opretannon'] == '1'){
$ip = $_SERVER['REMOTE_ADDR'];
require("../connect.php");
function resize( $filename, $newfilename, $maxw, $maxh, $quality=85 )
{
  $ext = strtolower( pathinfo( $filename, PATHINFO_EXTENSION ) );
  switch($ext)
  {
    case 'jpeg':
    case 'jpe':
    case 'jpg':
      $srcim = imagecreatefromjpeg( $filename );
      break;
    case 'gif':
      $srcim = imagecreatefromgif( $filename );
      break;
    case 'png':
      $srcim = imagecreatefrompng( $filename );
      break;
    default:
      return false;
  }
  $ow = imagesx( $srcim );
  $oh = imagesy( $srcim );
  $wscale = $maxw / $ow;
  $hscale = $maxh / $oh;
  $scale = min( $hscale, $wscale );
  $nw = round( $ow * $scale, 0 );
  $nh = round( $oh * $scale, 0 );
  $dstim = imagecreatetruecolor( $nw, $nh );
  imagecopyresampled( $dstim, $srcim, 0, 0, 0, 0, $nw, $nh, $ow, $oh );
  switch($ext)
  {
    case 'jpeg':
    case 'jpe':
    case 'jpg':
      imagejpeg( $dstim, $newfilename, $quality );
      break;
    case 'gif':
      imagegif( $dstim, $newfilename );
      break;
    case 'png':
      $png_q = floor( abs( $quality / 10 - 9.9 ) );
      imagepng( $srcim, $newfilename, $png_q );
      break;
    default:
      return false;
  }
  imagedestroy( $dstim );
  imagedestroy( $srcim );
  return file_exists($newfilename);
}
$uploadDir = 'upload/'; //Bibliotek hvor filer uploades til - husk chmod 777
$allowedFileTypes = array('jpg','gif','png','jpeg');
  //Har vi en fil?
  if(is_uploaded_file($_FILES['file']['tmp_name']))
  {
    //Filendelse
    $extension = strtolower(pathinfo($_FILES['file']['name'],PATHINFO_EXTENSION));
   
    //Er filen en af de filer vi gerne vil have?
    if(in_array($extension,$allowedFileTypes))
    {
    resize($_FILES['file']['tmp_name'], $_FILES['file']['filen'], 510, 510, 85 );
      //Vi flytter filen fra tmp til vores UPLOADDIR
      if(move_uploaded_file($_FILES['file']['filen'],$uploadDir . basename($_FILES['file']['name'])))
      {
        echo '<h3 style="color:green;">File ('.basename($_FILES['file']['name']).') uploaded succesfully</h3>';
      }
      else
      {
        echo '<h3 style="color:red;">Error - unable to upload file: '.basename($_FILES['file']['name']).'</h3>';
      }
    }
    else
    {
      echo '<h3 style="color:red;">Wrong filetype, allowed filetypes are: ('.implode(',',$allowedFileTypes).')</h3>';
    }
  }
  else
  {
    echo '<h3 style="color:red;">No file selected<h3>';
  }

.... sql script som burde virke fint nok :-)


Med venlig hilsen
Kevin Simper
Avatar billede superdreng Nybegynder
03. marts 2008 - 13:53 #1
Nu har jeg prøvet at lade billed blive upload og så bagefter resize det, men det virker vist heller ikke.

$imagel = basename($_FILES['file']['name']);
resize( $uploadDir . $imagel, $uploadDir . $imagel, 510, 510);

Hele upload processen virker! :-)
Avatar billede superdreng Nybegynder
03. marts 2008 - 13:59 #2
Hele scriptet for en sikkerheds skyld, med det jeg har skrevet ovenover:
<?php
ob_start();
if($_GET['funktion'] == "opretannon" && $_POST['opretannon'] == '1'){
$ip = $_SERVER['REMOTE_ADDR'];
require("../connect.php");
function resize( $filename, $newfilename, $maxw, $maxh, $quality=85 )
{
  $ext = strtolower( pathinfo( $filename, PATHINFO_EXTENSION ) );
  switch($ext)
  {
    case 'jpeg':
    case 'jpe':
    case 'jpg':
      $srcim = imagecreatefromjpeg( $filename );
      break;
    case 'gif':
      $srcim = imagecreatefromgif( $filename );
      break;
    case 'png':
      $srcim = imagecreatefrompng( $filename );
      break;
    default:
      return false;
  }
  $ow = imagesx( $srcim );
  $oh = imagesy( $srcim );
  $wscale = $maxw / $ow;
  $hscale = $maxh / $oh;
  $scale = min( $hscale, $wscale );
  $nw = round( $ow * $scale, 0 );
  $nh = round( $oh * $scale, 0 );
  $dstim = imagecreatetruecolor( $nw, $nh );
  imagecopyresampled( $dstim, $srcim, 0, 0, 0, 0, $nw, $nh, $ow, $oh );
  switch($ext)
  {
    case 'jpeg':
    case 'jpe':
    case 'jpg':
      imagejpeg( $dstim, $newfilename, $quality );
      break;
    case 'gif':
      imagegif( $dstim, $newfilename );
      break;
    case 'png':
      $png_q = floor( abs( $quality / 10 - 9.9 ) );
      imagepng( $srcim, $newfilename, $png_q );
      break;
    default:
      return false;
  }
  imagedestroy( $dstim );
  imagedestroy( $srcim );
  return file_exists($newfilename);
}
$uploadDir = 'upload/'; //Bibliotek hvor filer uploades til - husk chmod 777
$allowedFileTypes = array('jpg','gif','png','jpeg');
  //Har vi en fil?
  if(is_uploaded_file($_FILES['file']['tmp_name']))
  {
    //Filendelse
    $extension = strtolower(pathinfo($_FILES['file']['name'],PATHINFO_EXTENSION));
   
    //Er filen en af de filer vi gerne vil have?
    if(in_array($extension,$allowedFileTypes))
    {
      //Vi flytter filen fra tmp til vores UPLOADDIR
      if(move_uploaded_file($_FILES['file']['tmp_name'],$uploadDir . basename($_FILES['file']['name'])))
      {
        echo '<h3 style="color:green;">File ('.basename($_FILES['file']['name']).') uploaded succesfully</h3>';
      }
      else
      {
        echo '<h3 style="color:red;">Error - unable to upload file: '.basename($_FILES['file']['name']).'</h3>';
      }
    }
    else
    {
      echo '<h3 style="color:red;">Wrong filetype, allowed filetypes are: ('.implode(',',$allowedFileTypes).')</h3>';
    }
  }
  else
  {
    echo '<h3 style="color:red;">No file selected<h3>';
  }
$imagel = basename($_FILES['file']['name']);
resize( $uploadDir . $imagel, $uploadDir . $imagel, 510, 510);
mysql_query("INSERT INTO marked (id, navn, status, desp, ip, image, opret) VALUES
          ('', '$_POST[navn]', '$_POST[status]',  '$_POST[tekst]', '$ip', '$imagel', '')") OR DIE(mysql_error());
header("location: ************** ");
}
ob_end_flush();
?>
Avatar billede superdreng Nybegynder
03. marts 2008 - 20:37 #3
Lukker, fandt selv problemmet!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester