Witam mam sobie skrypcik do przetwarzania obrazow w php korzystajacy z biblioteki GD.
Prosze nie przejmowac sie dlugoscia kodu, nizej sa wyszczegolnione najwazniejsze czesci....
Oto on:
<?php
//udostepnienie zmiennych
$image_caption = $_POST['image_caption'];
$image_username = $_POST['image_username'];
$destination = $_POST['destination'];
$image_tempname = $_FILES['image_filename']['name'];
//umieszczenie obrazu i sprawdzenie jego formatu
$ImageDir = "c:/Program Files/WebServ/httpd/OOP/PHP5/HolidayImage/images/";
$ImageThumb = $ImageDir."thumbs/";
$ImageName = $ImageDir . $image_tempname;
//Sprawdzanie czy uzytkownik uzupelnil wszystkie pola
if(empty($_POST['image_caption']) || empty($_POST['image_username'])) { echo "Uzupełnij wszyskieg pola formularza<br>"; }
//Sprawdzenie czy plik został wysłany
echo "Musisz wybrac jakis plik do uploadu!"; }
//pobranie informacji na temat umieszczonego obrazu
list
($width, $height, $type, $attr) = getimagesize($ImageName);
if($type > 3) { //w tablicy formatow 3 piersze miejsca zajmuja GIF, JPG i PNG, stad zawartosc warunku if
echo "Przykro nam, ale przesyłany obraz nie jest w odpowiednim formacie.</br> "; echo "Kliknij przycisk wstecz w swojej przegladarce internetowej"; } else {
//obraz jest w poprawnym formacie mozna kontynuowac
//wstawienie informacji do tabeli images
$insert = "INSERT INTO images
(image_caption, image_username, image_date)
VALUES
('$image_caption', '$image_username', '$today')";
$newfilename = $ImageDir . $lastpicid . ".jpg";
if($type == 2) {
rename($ImageName, $newfilename); } else {
if ($type == 1) {
$image_old = imagecreatefromgif($ImageName);
} elseif ($type == 3) {
$image_old = imagecreatefrompng($ImgeName);
}
//skonwertuj obraz na format JPG
$image_jpg = imagecreatetruecolor($width, $height);
imagecopyresampled($image_jpg, $image_old, 0,0,0,0, $width, $height, $width, $height);
imagejpeg($image_ipg, $newfilename);
imagedestroy($image_old);
imagedestroy($image_jpg);
}
$newthumbname = $ImageThumb.$lastpicid.".jpg";
//pobierz wymiary miniaturki
$thumb_width = $width*0.10;
$thumb_height = $height*0.10;
//utwórz miniaturke
$largeimage = imagecreatefromjpeg($newfilename);
$thumb = imagecreatetruecolor($thumb_width, $thumb_height);
imagecopyresampled($thumb, $largeimage, 0,0,0,0, $thumb_width, $thumb_height, $width, $height);
imagejpeg($thumb, $newthumbname);
imagedestroy($largeimage);
imagedestroy($thumb);
$dstfilename = $ImageDir.$destination.".jpg";
list
($width2, $height2, $type2, $attr2) = getimagesize($dstfilename); $image2 = imagecreatefromjpeg($dstfilename);
imagecopymerge($image2, $newfilename, 0,0,0,0, $width, $height, 100);
//$url = "location: showimage.php?id=" . $lastpicid;
//header($url);
header("Content-type:image/jpeg"); imagejpeg($image2);
}
}
?>
Prosze zwrocic uwage na te linijki :
<?php
//pobieram zmienna ktora decyduje ktory obrazek wybrac
$destination = $_POST['destination'];
//ustalam scieze dostepu do obrazkow
$ImageDir = "c:/Program Files/WebServ/httpd/OOP/PHP5/HolidayImage/images/";
//przetwarzam obrazek
$dstfilename = $ImageDir.$destination.".jpg";
list
($width2, $height2, $type2, $attr2) = getimagesize($dstfilename);$image2 = imagecreatefromjpeg($dstfilename);
imagecopymerge($image2, $newfilename, 0,0,0,0, $width, $height, 100);
//proba wyswietlenia
header("Content-type:image/jpeg"); imagejpeg($image2);
?>
No i niestety, gdy probuje wyswietlic obrazek pokazuje mi sie sciezka do pliku php ktory sluzy do przetwarzania a nie obrazek ktory chce wyswietlic choc sciezka $ImageDir jest jednoznacznie okreslona....
a dostaje sciezke do skryptu ktory przetwarza obraz zamiast do obrazka:
http://localhost:81/OOP/PHP5/HolidayImage/check_image.phpco moze byc nie tak ?
Ten post edytował Wolfie 17.04.2009, 17:41:55