hallo.
ich wil bei einem berichterfassungsmodul upgeloadete bilder on-the-fly als thumbnails in einen ordner speichern. der upload und das thumbnail erstellen funktioniert, aber das thumbnail ist dann einfach ein schwarzes bild mit zu grosser höhe.
hier mein code:
$image ist der name des raufgeladenen bildes, ohne dateiendung, zb. "fenster"
$image_dir ist "ordnername/berichtname/"
$new_width ist 80
die parameter werden korrekt übertragen.
function create_thumb ($image, $image_dir, $new_width) {
$image_info = getimagesize($image_dir.$image.".jpg");
switch ($image_info[2])
{
case 2:
$src_img = imagecreatefromjpeg($image_dir.$image.".jpg");
$ratio = $image_info[0] / $new_width;
$new_height = $image_info[1] * $ratio;
$thumbnail = imagecreate($new_width, $new_height);
imagecopyresized($thumbnail, $scr_img, 10, 10, 10, 10, $new_width, $new_height, $image_info[0], $image_info[1]);
imagejpeg($thumbnail, $image_dir.$image."_thumb.jpg");
break;
}
}
danke schonmal für die hilfe.
so long
Hi,
auf den ersten Blick würde ich das ändern:
http://de3.php.net/imagecreatetruecolor
hab das mal so geändert - das thumbnail bleibt aber gleich..
niemand?
lass dir mal alle ausgerechneten werde (höhe, breite) ausgeben und rechne es von hand nach, ob die werte korrekt sind
ok, werds heute abend mal so debuggen.
hi
ich hab das hier bei mir im einsatz. ist aus den weiten des www gefischt und bei mir funzt es soweit einwandfrei.
#Automatisch ein Thumbnail-Bild generieren
#Pfad wo das originalbild liegt
$PicPathIn=$dir_upload;
#########
#Pfad wo das Thumbnail gespeichert werden soll
$PicPathOut=$dir_upload.'thumbs/';
#########
#Orginalbild
$bild=$image;
#########
#Bilddaten feststellen
$size=getimagesize("$PicPathIn"."$bild");
$breite=$size[0];
$hoehe=$size[1];
$neueBreite=60;
$neueHoehe=intval($hoehe*$neueBreite/$breite);
if($size[2]==2) {
// JPG
$altesBild=ImageCreateFromJPEG("$PicPathIn"."$bild");
$neuesBild=ImageCreateTrueColor($neueBreite,$neueHoehe);
ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,
$neueHoehe,$breite,$hoehe);
ImageJPEG($neuesBild,"$PicPathOut"."$bild");
}
if($size[2]==1) {
// GIF
$altesBild=ImageCreateFromGIF("$PicPathIn"."$bild");
$neuesBild=ImageCreate($neueBreite,$neueHoehe);
ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,
$neueHoehe,$breite,$hoehe);
ImageGIF($neuesBild,"$PicPathOut"."$bild");
}
$Tumbnail=$PicPathOut.$bild;
vielleicht hilfts dir ja ;)
hey. danke - ich werds mir mal anschauen.
/edit.
habs jetzt nochmal durchgerechnet - und die zu grosse höhe kommt davon, dass ich * statt / hatte :)
das thumbnail bleibt aber immernoch schwarz? hab jetzt schon mehere beispiele angeschaut und die stimmen bis auf die variablennamen überein..