Resize af billede
Jeg har et problem med det script jeg bruger det til at resize billeder med. Det resizer nemlig ikke billederne til den størrelse jeg har angivet.Et eksempel er en fil på 800 x 600 der bliver resizet til 288 x 216 når jeg faktisk har angivet det til at skulle være 200 x 130.
Min kode ser ud som følge:
<?
if(!isset($_SESSION['admin'])) {
include("login/admincheck.php");
} else {
$upfil = $_REQUEST['upfil1'];
$id = microtime();
///*** FIL START FIL START ***///
function replace_string($ind_str){
$soketter = array("æ","ø","å","Æ","Ø","Å"," ");
$byttil = array("ae","oe","aa","AE","OE","AA","_");
$tekst = str_replace($soketter,$byttil,$ind_str);
return $tekst;
}
function resize( $filename, $newfilename, $maxw, $maxh ){
$result = false;
$srcim = imagecreatefromjpeg( $filename );
$ow = imagesx( $srcim );
$oh = imagesy( $srcim );
$wscale = $maxw / $ow;
$hscale = $maxh / $oh;
$scale = ( $hscale < $wscale ? $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 );
$result = imagejpeg( $dstim, $newfilename, 85 );
imagedestroy( $dstim );
imagedestroy( $srcim );
return $result;
}
if(isset($_POST['submit'])){
if($_FILES["upfil"]["size"] > 0) {
$konfiguration["upload_bibliotek"] = "./pictures";
$konfiguration["max_stoerrelse"] = "10000";
/* Hvor flytter vi fra og til */
$fra = $_FILES["upfil"]["tmp_name"];
$til = $konfiguration["upload_bibliotek"] . "/" . replace_string($_FILES["upfil"]["name"]) . $id;
$til_t = $konfiguration["upload_bibliotek"] . "/thumb_" . replace_string($_FILES["upfil"]["name"]) . $id;
/* Check PHP-version */
list($major, $minor, $rev) = explode(".", phpversion());
if($major < 4){
die("Jeg kan kun arbejde med PHP 4.0.0 eller derover");
}
/* Skab de "moderne" arrays hvis vi arbejder med en aeldre PHP */
if($minor < 1){
$_FILES = $HTTP_POST_FILES;
$_POST = $HTTP_POST_VARS;
$_SERVER = $HTTP_SERVER_VARS;
}
/* Accepterer vi filens stoerrelse? */
$fil_stoerrelse = filesize($fra)/1024;
if($fil_stoerrelse > $konfiguration["max_stoerrelse"]){
die("Desværre - filen er for stor. Jeg accepterer kun " .
$konfiguration["max_stoerrelse"] . "kb, og din fil fylder " .
ceil($fil_stoerrelse, 1) . " kb");
}
if(function_exists("move_uploaded_file")) {
resize($fra, $til, 324, 216);
resize($fra, $til_t, 200, 130);
}
else {
copy($fra, $til);
}
}
$filnavn = $til;
$filnavnthumb = $til_t;
}
///*** FIL SLUT FIL SLUT ***///
}
$query_insert = mysql_query("INSERT INTO billeder (id, filnavn, filnavnthumb) VALUES ('$id', '$filnavn', '$filnavnthumb'
)")
or die(mysql_error());
header("location:index.php?side=billeder");
?>
I øvrigt leder jeg efter et script (formentligt java) der åbner et lille vindue (uden faner mv.) i størrelsen 800 x 600 når der trykkes på thumbnailen.
Mvh.
