Skocz do zawartości

Zmiana Rozmiaru Obrazu W Locie...


vel

Rekomendowane odpowiedzi

Witam

Potrzebuję napisać skrypt, który dostanie jako wejście obrazek, przeskaluje go do zadanej wielkości i przeskalowany zapisze na dysk (zachowując oryginał).

Wiem, że pewnie było, ale nie mogę odnaleźć, a sprawa dosyć pilna

Podrzuccie coś proszę :crazy:

Kup sobie nieruchomości Kraków albo apartamenty Zakopane. Obejrzyj też fotoblog Grzegorza Ziemiańskiego Nowa Huta na deser

Odnośnik do komentarza
Udostępnij na innych stronach

używam czegoś takiego. źródło wziałem z pl.php.net, ale lekko to przerobiłem na swoje potrzeby

uzywam tego tak:

img.php?pic=sciezka_do_obrazka/obrazek.jpg&width=szerokosc w px

mam nadzieje, ze pomogłem a jak nie to przynajmniej naprowadziłem :crazy:

<?

header("Content-type: image/jpeg");

if(strstr($pic,".gif")) {

    $handle = @imagecreatefromgif($pic);

}

  else $handle = @imagecreatefromjpeg($pic);

  $x=imagesx($handle);

  $y=imagesy($handle);

                                                 

//      if($x > $y){                             

              $max = $x;                       

              $min = $y;                       

//      }                                       

//      if($x <= $y){                             

//              $max = $y;                       

//              $min = $x;                       

//      }                                     

//$size_in_pixel : Size max of the label in pixel.  The size of the picture being

//proportional to the original, this value define maximum size

//of largest side with dimensions of the picture. Sorry for my english !

//Here $size_in_pixel = 100 for a thumbnail.

      $size_in_pixel = $width;

      $rate = $max/$size_in_pixel;

      $final_x = $x/$rate;

      $final_y = $y/$rate;

      if($final_x > $x) {

              $final_x = $x;

              $final_y = $y;

      }

      $final_x = ceil($final_x);

      $final_y = ceil($final_y);

      $black_picture = imageCreatetruecolor($final_x,$final_y);

      imagefill($black_picture,0,0,imagecolorallocate($black_picture, 255, 255, 255));

      imagecopyresampled($black_picture, $handle, 0, 0, 0, 0,$final_x, $final_y, $x, $y);

      if(!@imagejpeg($black_picture,$dest_pict.'/mini_'.$pict, $size_in_pixel))

      imagestring($black_picture, 1, $final_x-4, $final_y-8, ".", imagecolorallocate($black_picture,0,0,0));

                     

      //The number is the quality of the result picture

      imagejpeg($black_picture,'', '85');

      imagedestroy($handle);

      imagedestroy($black_picture);

?>

Odnośnik do komentarza
Udostępnij na innych stronach

dzięki, też pomogło :crazy:

do tego znalazłem w końcu co nieco googlem i wyprodukowałem sobie 2 funcje: jedna zmienia rozmiar do zadanego konkretnego rozmiaru, a druga skaluje względem szerokości lub wysokości do zadanej odpowiednio szerokości/wysokości.

uff :crazy:

Kup sobie nieruchomości Kraków albo apartamenty Zakopane. Obejrzyj też fotoblog Grzegorza Ziemiańskiego Nowa Huta na deser

Odnośnik do komentarza
Udostępnij na innych stronach

Jeszcze dodam: Jeśli chcesz zapisywać a nie wysyłać obraz do przeglądarki musisz podać nazwę pliku jako 2 argument funkcji imagejpeg ()

int imagejpeg (int obraz [, string nazwapliku [, int jakosc]])

Parametr nazwapliku jest opcjonalny, jeżeli go nie podamy, to surowy strumień obrazka zostanie wysłany bezpośrednio, najczęściej, do przeglądarki. By opuścić parametr z nazwą pliku, dla zachowania kolejności argumentów, użyj pusty łańcuch tekstowy (''). Trzeci parametr odpowiada za jakość obrazka co za tym idzie też wielkość pliku zapisanego lub wysłanego do przeglądarki. Może mieć wartości od 0 -100 :)

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

tak, spoko, poradziłem sobie i z tym :)

przerobiony obrazek trafia na dysk serwera jako jpeg. wszystko jest ok, musiałem tylko jeszcze zamienić imagecreate na imagecreatetruecolor zgodnie z zaleceniem php manuala, bo niektórym fotom chrzaniło kolory :)

dzięki za pomoc :)

Kup sobie nieruchomości Kraków albo apartamenty Zakopane. Obejrzyj też fotoblog Grzegorza Ziemiańskiego Nowa Huta na deser

Odnośnik do komentarza
Udostępnij na innych stronach

Uważam, że KuRT powinien niezwłocznie zmienić swój awatar z uwagi na to, iż taki już występuje co jest mylące.. ale to nie dział pogawędki wiec się już "zamykam" ...

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Faktycznie ciekawa i funkcjonalna klasa :rolleyes:

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności