Gemme skaleret jpeg
Jeg har på det groveste planket et script fra denne kategori. Det resizer et uploadet billede og gemmer det efterfølgende i en undermappe. Det virker sådan set ok, problemet er bare, at det billede der bliver spyttet ud er ulæseligt for alle mine billedbehandlingsprogrammer samt browseren (billedet eksisterer og fylder et antal kb). Nogen der kan lure hvad der går galt?<?php
//Upload functions START
function Thumb($sourcefile, $size) {
echo 'Thump-funktionen er kaldt';
$ext = pathinfo($_FILES["upfile"]["name"]);
if (strtolower($ext["extension"]) == "png") {
$im = imageCreateFromPNG($sourcefile);
} elseif (strtolower($ext["extension"]) == "jpeg" || strtolower($ext["extension"]) == "jpg") {
$im = imageCreateFromJPEG($sourcefile);
}
$source_x = imagesx($im);
$source_y = imagesy($im);
$delta = $size/max($source_x, $source_y);
$dest_x = round($source_x*$delta);
$dest_y = round($source_y*$delta);
$target_id = imagecreatetruecolor($dest_x, $dest_y);
echo '<p>imagecreatetruecolor'.$dest_x.','.$dest_y.'<p>';
imagecopyresampled($target_id,$im,0,0,0,0, $dest_x,$dest_y, $source_x,$source_y);
echo '<p>imagecopyresampled('.$target_id.','.$im.',0,0,0,0,'.$dest_x.','.$dest_y.','.$source_x.','.$source_y.')<p>';
if (strtolower($ext["extension"]) == "png") {
imagePNG($target_id, $sourcefile);
echo '<p>det var en png';
} elseif (strtolower($ext["extension"]) == "jpeg" || strtolower($ext["extension"]) == "jpg") {
echo '<p>det var en jpg: '.$sourcefile.'<p>';
imageJPEG($target_id, $sourcefile, 100);
}
}
function tjektype($type) {
$tilladt = array('image/x-png', 'image/png', 'image/pjpeg', 'image/jpeg');
if(!in_array($type, $tilladt)) {
return false;
}else{
return true;
}
}
function tjekfil($filnavn) {
$i = 0;
$arr = explode(".", $filnavn);
$ext = array_pop($arr);
$navn = implode(".", $arr);
while (is_file($filnavn)) {
$i++;
$filnavn = $navn . "." . sprintf("%03u", $i) . "." . $ext;
}
return $filnavn;
}
//UPLOAD Functions END
//Så har jeg noget mysql... noge her.
//UPLOAD START
$uploaddir = $_SERVER["DOCUMENT_ROOT"] ."/test/pics/";
$maxsize = 150; //pixels (width)
if (isset($_FILES["upfile"])) {
$source = $_FILES['upfile']['tmp_name'];
if (is_uploaded_file($source)) {
if (tjektype($_FILES['upfile']['type'])) {
$dest = $uploaddir . $_FILES['upfile']['name'];
$dest = tjekfil($dest);
if (move_uploaded_file($source, $dest)) {
thumb($dest,$maxsize,$maxsize);
echo "Picture uploaded!";
} else {
echo "Picture not uploaded!";
}
} else {
echo "This type of file can not be uploaded!";
}
} else {
echo "Error. Contact the webmaster!";
}
}
//Upload script END
?>