ToPeR
19.05.2004, 13:20:46
Witam
Mam pewien problem, mianowicie:
Uloaduje zdjęcie i skryptem php przerabiam go na dwa mniejsze zdjęcia, które nastepnie zapisuje w tym samym katalogu o różnych nazwach.
Uloadowane zdjęcie poprostu:
1. zmniejsza do 800x600 i zapisuje jako: foto1.jpg
2. zmniejsza do 133x120 i zapisuje jako: foto1_mini.jpg
i jescze ich parametry zapisuję do bazy. NIC więcej...
I problem polega na tym, że większe zdjęcie po zapisaniu ma atrybut 600 a mniejsze zdjęcie ma atrybut: 644
a wykonuje je ten sam skrypt. Czy macie jakieś sugestie, co powinienem sprawdzić ?! (bo żywcem nie wiem, co może być nie tak).
wassago
19.05.2004, 13:25:16
najlepiej pokaz nam kod zrodlowy skrypu.
ToPeR
19.05.2004, 13:41:59
Część kodu zapisu z formularza:
[php:1:ff066c6bfb]<?php
...
$uploaddir = '../foto/';
$uploadfile = $uploaddir.$_FILES['file']['name'];
if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)) {
$pyt5.= ", foto='".image_resize($uploadfile)."'";
}
...
?>[/php:1:ff066c6bfb]
a oto najważniejsza cześć funkcji: image_resize();
[php:1:ff066c6bfb]<?php
...
$destination_image = imagecreatetruecolor($new_image["width"],$new_image["height"]);
imagecopyresampled($destination_image, $source_image_link, 0, 0, 0, 0, $new_image["width"], $new_image["height"], $source_image[0], $source_image[1]);
imagejpeg($destination_image,$image_name);
imagedestroy($destination_image);
imagedestroy($source_image_link);
$source_image_link = imagecreatefromjpeg($image_name);
$destination_image = imagecreatetruecolor($new_small_image["width"],$new_small_image["height"]);
imagecopyresampled($destination_image,$source_image_link,0,0,0,0,$new_small_imag
["width"],$new_small_image["height"],$new_image["width"],$new_image["height"]);
$image_name_lenght = strlen($image_name);
$image_name = substr($image_name, 0, $image_name_lenght - 4);
imagejpeg($destination_image, $image_name ."_small.jpg");
imagedestroy($destination_image);
$image_name = substr($image_name,3);
$database["query"] = "INSERT INTO images(src,width,height,width_small,height_small) VALUES('".$image_name."','".$new_image["width"]."','".$new_image["height"]."','".$new_small_image["width"]."','".$new_small_image["height"]."');";
$result = mysql_query($database["query"],$link);
$lastid = mysql_insert_id();
return ($lastid);
}
?>[/php:1:ff066c6bfb]
ToPeR
19.05.2004, 22:58:48
Panowie, co jest ?! Żadnych sugesti ?
Może jakieś pomysły, gdzie szukać przyczyn ?
wassago
20.05.2004, 08:42:22
Na odpowiedzi czekamy 48 godzin, gdy nikt w tym czasie nie zaproponuje rozwiazania, mozna sie o takowe upomniec.
Co do skryptu: moze po prostu po wykonanych operacjach zmien chmod'y plikow -
http://pl2.php.net/manual/pl/function.chmod.php