Mam skrypt który tworzy miniatury. Kiedyś skopiowałem go z forum i dostosowałem do swoich potrzeb. Teraz chciałbym go jeszcze raz przerobić.
Chodzi generalnie o to, żeby tworzył miniatury jpg/jpeg, gif, png a jeśli się da to nawet tiff i bmp.
Niestety po testach sprawdziłem, że obrazki które mają rozszerzenia pisane z dużej litery (np. *.PNG) nie chcą się przekształcać.
Druga sprawa to taka, że nawet jeśli przerobi plik png to mimo tego, że daje rozszerzenie png jest on jpg'iem. Jak to sprawdzić? Przeciągnąłem obrazek na pasek firefoxa i na tabie jest napisane "nazwa, JPEG, rozdzielczość". Dziwne dlaczego JPEG skoro konwertowałem PNG. Przy niekonwertowanych PNG oczywiście firefox wyświetla normalnie PNG.
Oto kod:
<? $width=$_POST['width']; $height=$_POST['height']; $file=$_POST['file']; if($arr["extension"]=="gif" || $arr["extension"]=="jpg" || $arr["extension"]=="png" || $arr["extension"]=="jpeg") { function resize($files, $new_w, $new_h, $save,$quality) { { return FALSE; } switch ($info['mime']) { case "image/gif": $files = imagecreatefromgif($files); break; case "image/jpeg": $files = imagecreatefromjpeg($files); break; case "image/png": $files = imagecreatefrompng($files); break; } $old_x = imageSX($files); $old_y = imageSY($files); $th = ImageCreateTrueColor($new_w, $new_h); @imagecopyresampled($th, $files, 0, 0, 0, 0, $new_w, $new_h, $old_x, $old_y); @imagejpeg($th, $save,$quality); @imagedestroy($files); @imagedestroy($th); return TRUE; } resize('../'.$file, $width, $height, '../'.$file, 90); } ?>
Pozdrawiam