hej
dla niektórych fotek wywala taki błąd:
Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in C:\WebServ\httpd-users\Ogloszenia v.111\uzytkownik\osobowe\resize.php on line 95
te zrobione moim aparatem zmniejsza oki a niektóre pobrane z internetu wywalają powyższy błąd
taki mam kod do zmniejszania fotek (oczywiście to część odpowiadająca za zmniejszenie fotek)
<?
$rozmiar_max = 800000;
$obrazek = $_FILES["obrazek"]['tmp_name'];
$plik_tmp = $_FILES['obrazek']['tmp_name'];
$plik_nazwa = $_FILES['obrazek']['name'];
$plik_rozmiar = $_FILES['obrazek']['size'];
//echo"<br/>Temp: "; echo $plik_tmp;
//echo"<br/>Nazwa: "; echo $plik_nazwa;
//echo"<br/>Rozmiar: "; echo $plik_rozmiar;
//echo"<br/><br/>";
if ($plik_rozmiar > $rozmiar_max){$komunikat = 1; }//Plik jest za duży
if ($plik_rozmiar < 1){$komunikat = 2; }//Błędna ścieżka do pliku
if ($plik_tmp == false){$komunikat = 3; }//Błąd pliku temp
if(substr($plik_nazwa , -4, 4) == '.jpg'){$typ = ".jpeg";} elseif(substr($plik_nazwa , -4, 4) == '.JPG' ){$typ = ".jpeg";} elseif(substr($plik_nazwa , -5, 5) == '.jpeg'){$typ = ".jpeg";} elseif(substr($plik_nazwa , -5, 5) == '.JPEG'){$typ = ".jpeg";} elseif(substr($plik_nazwa , -4, 4) == '.gif'){$typ = ".gif";} elseif(substr($plik_nazwa , -4, 4) == '.GIF'){$typ = ".gif";} elseif(substr($plik_nazwa , -4, 4) == '.png'){$typ = ".png";} elseif(substr($plik_nazwa , -4, 4) == '.PNG'){$typ = ".png";} else{$komunikat = 4;}//To nie jest: jpg,jpeg,gif,png
$nazwa_fotki = $fotka_nazwa.$typ;
$sciezka_duze = "../../image/temp/d/".$nazwa_fotki;
$sciezka_srednie = "../../image/temp/s/".$nazwa_fotki;
$sciezka_male = "../../image/temp/m/".$nazwa_fotki;
copy($obrazek,$sciezka_duze); }else {
$komunikat = 5;//Błąd kopiowania pliku
}
//echo $komunikat;
if ($komunikat == false)
{
function imgType($plik_nazwa )
{
if(substr($plik_nazwa , -4, 4) == '.jpg'){return IMAGETYPE_JPEG
;} elseif(substr($plik_nazwa , -4, 4) == '.JPG' ){return IMAGETYPE_JPEG
;} elseif(substr($plik_nazwa , -5, 5) == '.jpeg'){return IMAGETYPE_JPEG
;} elseif(substr($plik_nazwa , -5, 5) == '.JPEG'){return IMAGETYPE_JPEG
;} elseif(substr($plik_nazwa , -4, 4) == '.gif'){return IMAGETYPE_GIF
;} elseif(substr($plik_nazwa , -4, 4) == '.GIF'){return IMAGETYPE_GIF
;} elseif(substr($plik_nazwa , -4, 4) == '.png'){return IMAGETYPE_PNG
;} elseif(substr($plik_nazwa , -4, 4) == '.PNG'){return IMAGETYPE_PNG
;} }
function resizeImage($source, $max_x, $max_y, $save_image, $jpeg_quality = 100)
{
if(imgType($source) == IMAGETYPE_JPEG)
{
$img_src = imagecreatefromjpeg($source);
}
elseif(imgType($source) == IMAGETYPE_GIF)
{
$img_src = imagecreatefromgif($source);
}
elseif(imgType($source) == IMAGETYPE_PNG)
{
$img_src = imagecreatefrompng($source);
}
else
{
die('To nie są pliki JPG/JPEG, GIF, PNG'); }
$image_x = imagesx($img_src);
$image_y = imagesy($img_src);
if($image_x > $image_y){
$ratio_x = ($image_x > $max_x) ? $max_x/$image_x : 1;
$ratio_y = $ratio_x;
$move = 'y';
}
else{
$ratio_y = ($image_y > $max_y) ? $max_y/$image_y : 1;
$ratio_x = $ratio_y;
$move = 'x';
}
$new_x = $image_x*$ratio_x;
$new_y = $image_y*$ratio_y;
$move_x = ($move == "x") ? ($new_x-$new_x)/2 : 0;
$move_y = ($move == "y") ? ($new_y-$new_y)/2 : 0;
$new_img = imagecreatetruecolor($new_x, $new_y);
$background = imagecolorallocate($new_img, 122, 123, 122);
imagefill($new_img, 0, 0, $background);
imagecopyresampled($new_img, $img_src, $move_x, $move_y, 0, 0, $new_x, $new_y, $image_x, $image_y);
if(imgType($save_image) == IMAGETYPE_JPEG)
{
imagejpeg($new_img, $save_image, 100);
}
elseif(imgType($save_image) == IMAGETYPE_GIF)
{
imagegif($new_img, $save_image);
}
elseif(imgType($save_image) == IMAGETYPE_PNG)
{
imagepng($new_img, $save_image);
}
// echo"<img src=\"".$save_image."\" border=\"1\">";
}
resizeImage($sciezka_duze, 700, 0, $sciezka_duze, 56); // dopasowuje do pierwszego parametru - szerokość - wysokość proporcjonalna
resizeImage($sciezka_duze, 85, 0, $sciezka_male, 56); // dopasowuje do pierwszego parametru - szerokość - wysokość proporcjonalna
resizeImage($sciezka_duze, 280, 0, $sciezka_srednie, 56); // dopasowuje do pierwszego parametru - szerokość - wysokość proporcjonalna
}
?>