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); 
?>

Krijg je errors ofzo, dat zou helpen als je zegt dat het niet werkt...
nee het werkt wel en de filesize is kleiner maar het formaat niet :S
Ik denk wel dat hij er iets mee doet maar dat hij hem niet resized
Je geeft ze automatisch in je script ook al een breedte. Dat is niet erg handig tenzij het een potw is.
potw?
Ik wil ze allemaal op deze breedte hebben omdat ze later ook alleen maar in deze breedte gebruikt worden
Ja het werkt alleen vind de kwaliteit nogal bagger is daar nog wat aan te doen?

<?
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);

// Load
$thumb = imagecreatetruecolor($doelbreedte, $doelhoogte);
$source = imagecreatefromjpeg("../upload/" . $uploadname);

// Resize
imagecopyresized($thumb, $source, 0, 0, 0, 0, $doelbreedte, $doelhoogte,  $bronbreedte,$bronhoogte);
    

 imagejpeg($thumb, "../upload/" . $uploadname); // max. kwaliteit  
    //Het bronplaatje verwijderen
    imagedestroy($thumb);
    
    //Het doelplaatje verwijderen
    imagedestroy($source); 
?>
Sorry, moet je ff de anderen vragen, ik ben niet zo van het image php gedeelte. Meer tekst.
Ok ik wacht af wat de andere ervan zeggen heb al imagecopyresampled() gebruikt maar daarmee lijkt het alleen maar slechter.

Reageren