Gå til innhold

Resize et bilde.


Anbefalte innlegg

Når jeg laster opp ett bilde på siden min vil jeg at bildet skal bli 500px bredt.

Mens høyden skal regnes ut automatisk ut av dette.

 

Her er mitt script forløpig.

Dette endrer ikke bildestørrelsen viss det er for stort.

 

Noen som kan forklare hvordan jeg kan legge inn slik at bilde blir resized her?

 

<?php

function fileAccept($test)

{
$fileAccept = array('image/jpg', 'image/jpeg', 'image/pjpeg');
if(!in_array($_FILES['filen']['type'], $fileAccept))
return false;
}
 

$fileAccept = array('image/jpg', 'image/jpeg', 'image/pjpeg');

$filePath = 'admin/bilder/galleri/';

$thumbPercent = 25;

$createThumb = true;



if(is_uploaded_file($_FILES['filen']['tmp_name']) && $_FILES['filen']['error'] == 0)
{

if(in_array($_FILES['filen']['type'], $fileAccept))
{

if ($_FILES['filen']['type'] == 'image/jpg' ||
$_FILES['filen']['type'] == 'image/jpeg' ||
$_FILES['filen']['type'] == 'image/pjpeg')
{$fileExt = '.jpg';}


$fileName = str_replace($fileExt, '', $_FILES['filen']['name']);

$fileName = str_replace(' ', '_', $fileName);

$fileThumb = $fileName .'_thumb';

$fileSize = getimagesize($_FILES['filen']['tmp_name']);


if(!is_file($filePath . $fileName . $fileExt))
{
if(!copy($_FILES['filen']['tmp_name'], $filePath . $fileName . $fileExt))
{ print ("Kunne ikke legge bildet i "). $filePath;
 
  unlink($_FILES['filen']['tmp_name']);

}

else {

if ($createThumb)
{
if ($_FILES['filen']['type'] == 'image/jpg' ||
$_FILES['filen']['type'] == 'image/jpeg' ||
$_FILES['filen']['type'] == 'image/pjpeg')
{$moveImage = imagecreatefromjpeg($filePath . $fileName . $fileExt);}


$thumbImage = imagecreatetruecolor(($fileSize[0] / 100) * $thumbPercent, ($fileSize[1] / 100) * $thumbPercent);

imagecopyresampled($thumbImage, $moveImage, 0, 0, 0, 0, ($fileSize[0] / 100) * $thumbPercent, ($fileSize[1] / 100) * $thumbPercent, $fileSize[0], $fileSize[1]);

if ($_FILES['filen']['type'] == 'image/jpg' ||
$_FILES['filen']['type'] == 'image/jpeg' ||
$_FILES['filen']['type'] == 'image/pjpeg')
{imagejpeg($thumbImage, $filePath . $fileThumb . $fileExt);}

imagedestroy($moveImage);
imagedestroy($thumbImage);

}

print ("<span class=complete>Bildet er ferdig lastet opp.</span>"); include ("upload.php");

}

}

else
{print ("<span class=error>Navnet på bildet finnes allerede.</span>"); include ("upload.php"); exit ();}  

}

else {
       echo $_FILES['filen']['type'] .'<br>';
     echo ("<span class=error>Ugyldig filtype.</span>"); include ("upload.php"); exit ();
}

} 

else {echo ("<span class=error>Bilde ble ikke lastet opp.</span>"); include ("upload.php"); exit ();}


$album = ("Upload");
$bildenavn = ($_POST['bildenavn']);
$kommentar = ($_POST['kommentar']);
$bilde = ($fileName . $fileExt);
$thumb = ($fileThumb . $fileExt);
$navn = ($_POST['navn']);

$godkjent = ("nei");
$dato = strftime("%d. %B %Y kl %H:%M");

$upload = @mysql_query ("INSERT INTO `bilder` (`id`, `album`, `av`, `bilde`, `kommentar`, `thumb`, `dato`, `bildenavn`, `godkjent`) VALUES ('', '$album', '$navn', '$bilde', '$kommentar', '$thumb', '$dato', '$bildenavn', '$godkjent')");

if(@mysql_affected_rows($upload) == "0")
{ echo("<span class=error>Det oppstå en feil når nyheten ble lagt til databasen.</span><br>"); include("upload.php");}

}
?>

 

Rotet kode :(

Endret av Mellet
Lenke til kommentar
Videoannonse
Annonse

$fileSize = getimagesize('filen.jpg');

//her bynner vi og regne ut ny størelse
$imageNewWidth	= 500;  //ny bredden
 $ImageNewWidthPercent = ceil($imageNewWidth / ($fileSize[0] / 100));	//1% av nye bredden
 $imageNewHeight  = ($fileSize[1] / 100) * $ImageNewWidthPercent; //nye høyden

 $bilde = imagecreatefromjpeg('filen.jpg');
 $resizedBilde = imagecreatetruecolor($imageNewWidth, $imageNewHeight); 
 //kopierer bilder med ny høyde og bredde
 imagecopyresized($resizedBilde, $bilde,
                  0, 0, 0, 0,
                  $imageNewWidth, $imageNewHeight,
                  $fileSize[0], $fileSize[1]);	
 imagejpeg($resizedBilde, 'nye_filen.jpg'); //lagrer nye bildet

//så sletter vi gamle filen osv.  
imagedestroy($bilde);
imagedestroy($resizedBilde);
unlink('filen.jpg');

Der er måten jeg bruker og gjøre det på

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...