Ik wilde even snel wat maken maar het lukt niet. Ik heb her en der wat weggehaald bij de standaard scripts maar het wil niet werken zoals het hoort. Zo doet hij er wel iets mee dat het formaat afneemt maar hij wijzigd de pixels niet echt ofzo heel vreemd.


<?global $_FILES; 
//bestandsnaam compleet maken door toevoegen van extencie
$orginelenaam = $_FILES['userfile']['name'];
$extentie = substr($orginelenaam, -4);
$id = mysql_insert_id();
$uploadname = $id.$extentie;

//$uploadname = $_FILES['userfile']['name'];
if($uploadname){$foto = $uploadname;}
        move_uploaded_file($_FILES['userfile']['tmp_name'], "../upload/" . $uploadname);  
	//foto in de tabel bijwerken met de bestandsnaam van de foto
$sql = 'UPDATE `2ehands` SET `foto` = \''.$uploadname.'\' WHERE `id` = '.$id.';';
mysql_query($sql) or die(mysql_error()); 
	

 // het is niet handig om de grootte mee te geven maar voor test doeleinden wel
    //Waar komt het bestand vandaan?
    $bronvanhetbestand = "../upload/". $uploadname."";
    
    //De hoogte en breedte ophalen van het plaatje
    $dimensions = getimagesize($bronvanhetbestand); 
    
    //Dit is de breedte die alle plaatjes krijgen
    $doelbreedte = "310";
    
    //Hoogte en breedte toekennnen aan nieuwe variabelen
    $bronbreedte = $dimensions[0]; 
    $bronhoogte  = $dimensions[1];
    
    //De nieuwe hoogte berekenen aan de gegevens van het oude plaatje en de doel breedte
    $doelhoogte = ($bronhoogte * $doelbreedte) / $bronbreedte;
    
    //De hoogte, als het nodig is, afronden
    $doelhoogte = round($doelhoogte, 0);
    
    //Zeggen dat dit bestand een plaatje is
    //  header('content-type: image/jpeg'); 
    
    //Het plaatje inlezen in de variabele $image
    $image = imagecreatefromjpeg($bronvanhetbestand);
    
    //een nieuw klein plaatje maken met de gewenste grootte
    $destination = imagecreatetruecolor($doelbreedte, $doelhoogte);
    
    //Het nieuwe plaatje vullen met verkleinde plaatje
    imagecopyresampled($destination, $image, 0, 0, 0, 0, $doelbreedte, $doelhoogte, $bronbreedte, $bronhoogte);
   

 imagejpeg($image, "../upload/" . $uploadname); // max. kwaliteit  
    //Het bronplaatje verwijderen
    imagedestroy($image);
    
    //Het doelplaatje verwijderen
    imagedestroy($destination); 
?>

probleem opgelost ik laat hem gewoon 2 keer zo groot opslaan dus 620 ipv 310 en dan ziet het er goe3d uit bedankt voor je hulp arjan en ik ga nu slapen
<?
// $breedte is nieuwe breedte
// $hoogte is nieuwe hoogte
// $imgFILE waar het plaatje van gemaakt wordt, het orgineel dus (bijv $_FILES['image']['tmp_name'])
// $imgDIR waar het plaatje naartoe verhuisd als ie gemaakt is
// $imgNAME nieuwe naam voor plaatje (bijv. mysql_insert_id () )
// $imgEXTENSION jpg of voor thumbs _th.jpg etc.
// $quality getal tussen de 0 en 100 waarbij 100 beste kwaliteit is

function create_new_JPGimage ($breedte, $hoogte, $imgFILE, $imgDIR, $imgNAME, $imgEXTENSION, $quality)
{

//temp_photo voor thumbnail maken
$photo = imagecreatefromjpeg($imgFILE);


$target_x = $breedte;
$target_y = $hoogte;
// maten van afbeelding verkrijgen
list($width, $height) = getimagesize($imgFILE);
// als foto hoger dan breed is
if ($height > $width){
$resize_ratio= ceil($width/$target_x);
}
// als foto breder dan hoog is
elseif($height < $width){
$resize_ratio= ceil($height/$target_y);
}
// als foto even breed als hoog is
elseif($height == $width){
$resize_ratio= ceil($width/$target_y);
}
$newheight=ceil($height/$resize_ratio);
$newwidth=ceil($width/$resize_ratio);
$source_used_x = $width;
$source_used_y = $height;
$from_x = '0';
$from_y = '0';

//nieuwe image maken en wegschrijven naar dir

$create_blank = imagecreatetruecolor ($newwidth, $newheight);

imagecopyresampled ($create_blank, $photo, 0, 0, 0, 0, $newwidth, $newheight, $source_used_x, $source_used_y);

$new_filename = $imgDIR.$imgNAME.$imgEXTENSION;

ImageJpeg($create_blank,$new_filename,$quality);

Imagedestroy($photo);
}
?>

Dit scriptje werkt perfect voor resizen :)

Reageren