Ich hab einen Uploader, ich möchte gerne, dass wenn der ein Bild Uploaded es in 333x333px abspeichert wird. Es soll, falls das zu uploadende Bild nicht 333x333px hat, einen Ausschnitt mit dieser Größe ausschneiden, damit das Bild proportional richtig, und ohne Trauerränder, dargestellt wird. Da meine eigenen Versuche nicht zum gewünsten Erfolg führten, hab ich mal was gesucht und auf http://de3.php.net was gefunden.
Die Bilder werden in die erste Ordnerstruktur hochgeladen, da wo auch das Skript drin liegt.
Einen Thumb Ordner gibt es schon, in dem ich Bilder 111x111 speichere -funktioniert- (Als Randnotiz, weil ich nicht weiss wofür$pictype steht).
Ich bekomme, wenn ich das de3.php skript ausführe folgende Fehlermeltung:
Warning: imagejpeg(): Unable to open 'http://www.xxxxxxx.de/testarea/' for writing in /www/htdocs/xxxxxxxx/testarea/index.php on line 1849
Ich hab erst relative Pfade ausprobiert, dann absolute ... mir sind die Ideen ausgegangen?!
Ich weiss auch nicht, wofür das $pictype gut sein soll.
Ich würde mich freuen, wenn mir jemand weiterhelfen könnte!
Hier das Skript:
Die Bilder werden in die erste Ordnerstruktur hochgeladen, da wo auch das Skript drin liegt.
Einen Thumb Ordner gibt es schon, in dem ich Bilder 111x111 speichere -funktioniert- (Als Randnotiz, weil ich nicht weiss wofür$pictype steht).
Ich bekomme, wenn ich das de3.php skript ausführe folgende Fehlermeltung:
Warning: imagejpeg(): Unable to open 'http://www.xxxxxxx.de/testarea/' for writing in /www/htdocs/xxxxxxxx/testarea/index.php on line 1849
Ich hab erst relative Pfade ausprobiert, dann absolute ... mir sind die Ideen ausgegangen?!
Ich weiss auch nicht, wofür das $pictype gut sein soll.
Ich würde mich freuen, wenn mir jemand weiterhelfen könnte!
Hier das Skript:
PHP-Code:
/*
For an internet photoalbum I was looking for a script which I could simply drop in a directory with images and which would do the rest.
Therefor I am using the following resize script now. I have made the little thumb-part because I want to have all the same size thumbnails, but with as less as possible distortion. Therefor, images with other dimensions are resized, but also cut off a little.
Als $pictype = thumb, the extra dimension calculations are used
$width and $height are the new dimensions of $filename, the image
$dest is the directory where the new image must be copied in.
The script:
*/
// Resize function
//$filename="$file_name";
$dest="http://www.fxae.de/testarea/";
$width="333px";
$height="333px";
$pictype="thumb";
function resize($file_name, $dest, $width, $height, $pictype)
{
$format = strtolower(substr(strrchr($file_name,"."),1));
switch($format)
{
case 'gif' :
$type ="gif";
$img = imagecreatefromgif($file_name);
break;
case 'png' :
$type ="png";
$img = imagecreatefrompng($file_name);
break;
case 'jpg' :
$type ="jpg";
$img = imagecreatefromjpeg($file_name);
break;
case 'jpeg' :
$type ="jpg";
$img = imagecreatefromjpeg($file_name);
break;
default :
die ("ERROR; UNSUPPORTED IMAGE TYPE");
break;
}
list($org_width, $org_height) = getimagesize($file_name);
$xoffset = 0;
$yoffset = 0;
if ($pictype == "thumb") // To minimize destortion
{
if ($org_width / $width > $org_height/ $height)
{
$xtmp = $org_width;
$xratio = 1-((($org_width/$org_height)-($width/$height))/2);
$org_width = $org_width * $xratio;
$xoffset = ($xtmp - $org_width)/2;
}
elseif ($org_height/ $height > $org_width / $width)
{
$ytmp = $org_height;
$yratio = 1-((($width/$height)-($org_width/$org_height))/2);
$org_height = $org_height * $yratio;
$yoffset = ($ytmp - $org_height)/2;
}
}
$img_n=imagecreatetruecolor ($width, $height);
imagecopyresampled($img_n, $img, 0, 0, $xoffset, $yoffset, $width, $height, $org_width, $org_height);
if($type=="gif")
{
imagegif($img_n, $dest);
}
elseif($type=="jpg")
{
imagejpeg($img_n, $dest);
}
elseif($type=="png")
{
imagepng($img_n, $dest);
}
elseif($type=="bmp")
{
imagewbmp($img_n, $dest);
}
Return true;
chmod ("/.$file_name", 0777);
}
resize($file_name, $dest, $width, $height, $pictype);
Kommentar