Mam taki problem mam skrypt pobrany z netu i problem jest w tym, że prawidłowo zmniejsza zdjęcie, ale zapisuje je do góry nogami. Daje kod
<?php
/**
* Generuje miniaturkę lub pomniejszony obrazek,
* szerokość domyślnie ustawiona jest na 55 pikseli.
* @param string $plik — ścieżka do pliku jpeg
* @param string $szerokosc — szerokość pliku w px
* @return boolean
*/
resize("./zdjecia/20141004_112332.jpg",100);
function resize( $plik, $szerokosc) {
// pobieramy rozszerzenie pliku, na tej podstawie
// korzystamy potem z odpowiednich funkcji GD
$i = explode(".", $plik);
// rozszerzeniem pliku jest ostatni element tablicy $i
$rozszerzenie = end($i);
// jeśli nie mamy jpega, gifa lub png zwracamy false.
if($rozszerzenie !== "jpg" &&
$rozszerzenie !== "gif" &&
$rozszerzenie !== "png") {
return false;
}
// pobieramy rozmiary obrazka
list($img_szer, $img_wys) = getimagesize($plik);
// obliczamy proporcje boków
$proporcje = $img_wys / $img_szer;
// na tej podstawie obliczamy wysokość
$wysokosc = $szerokosc * $proporcje;
// tworzymy nowy obrazek o zadanym rozmiarze
// korzystamy tu z funkcji biblioteki GD
// która musi być dołączona do twojej instalacji PHP,
// najpierw tworzymy canvas.
$canvas = imagecreatetruecolor($szerokosc, $wysokosc);
switch($rozszerzenie) {
case "jpg":
$org = imagecreatefromjpeg($plik);
break;
case "gif":
$org = imagecreatefromgif($plik);
break;
case "png":
$org = imagecreatefrompng($plik);
break;
}
// kopiujemy obraz na nowy canvas
imagecopyresampled($canvas, $org, 0, 0, 0, 0,$szerokosc, $wysokosc, $img_szer, $img_wys);
// zapisujemy jako jpeg, jakość 70/100
if(imagejpeg($canvas, $plik . "_mini", 70)) {
return true;
} else {
return false;
}
}
?>