Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: resize jpg do stalej wysokosci
Forum PHP.pl > Forum > PHP
spandor
Witam

Mam taki problem, nie daje sobie rady ze zmiana tego skryptu aby zmiejszal fotke do zgory zadanej wysokosci. Ze podaje wysokosc 100 pix a on do tej wysokosci dobiera szerokosc.

pozd

  1. <?php
  2. function Resize($strName, $strNewName, $intMax) {
  3. // Wczytanie obrazka z pliku $strName
  4. $resImg = imagecreatefromjpeg($strName);
  5.  
  6. // Rozmiary obrazka
  7. $intWidth = imagesx($resImg); //szerokość
  8. $intHeight = imagesy($resImg); //wysokość
  9.  
  10. // Proporcje długości do szerokońci
  11. $floRatio = $intWidth / $intHeight;
  12.  
  13. // Wyliczenie skali do zmniejszenia
  14. if ($floRatio >= 1) {
  15. //poziome
  16. if ($intHeight < 800 && $intMax == 800) {
  17. $intMax = $intHeight;
  18. }
  19. $intNewHeight = $intMax;
  20. $intNewWidth = ($intMax / $floRatio);
  21. } else {
  22. //pionowe
  23. if ($intWidth < 600 && $intMax == 800) {
  24. $intMax = $intWidth;
  25. }
  26. $intNewWidth = $intMax;
  27. $intNewHeight = ($intMax * $floRatio);
  28. }
  29.  
  30. // Utworzenie "nowego" obrazka (pola roboczego) o wyliczonym rozmiarze
  31. $resTempImg = imagecreatetruecolor($intNewWidth, $intNewHeight);
  32.  
  33. // Przekopoiwanie wraz ze skalowaniem obrazka zródłowego na docelowy
  34. imagecopyresampled($resTempImg, $resImg, 0, 0, 0, 0, $intNewWidth, $intNewHeight, $intWidth, $intHeight );
  35.  
  36. // Zapis "nowego" obrazka do pliku podanym jako $strNewName
  37. imagejpeg($resTempImg, $strNewName);
  38. }
  39. ?>
k@mil
  1. <?php
  2. function Resize($strName, $strNewName, $intNewHeight) {
  3. // Wczytanie obrazka z pliku $strName
  4. $resImg = imagecreatefromjpeg($strName);
  5. // Rozmiary obrazka
  6. $intWidth = imagesx($resImg); //szerokość
  7. $intHeight = imagesy($resImg); //wysokość
  8. // Proporcje długości do szerokońci
  9. $floRatio = $intWidth / $intHeight;
  10. // Wyliczenie szerokości
  11. $intNewWidth = $newHeight * $floRatio;
  12. // Utworzenie "nowego" obrazka (pola roboczego) o wyliczonym rozmiarze
  13. $resTempImg = imagecreatetruecolor($intNewWidth, $intNewHeight);
  14. // Przekopiowanie wraz ze skalowaniem obrazka zródłowego na docelowy
  15. imagecopyresampled($resTempImg, $resImg, 0, 0, 0, 0, $intNewWidth, $intNewHeight, $intWidth, $intHeight );
  16. // Zapis "nowego" obrazka do pliku podanym jako $strNewName
  17. imagejpeg($resTempImg, $strNewName);
  18. }
  19. ?>


Nie testowane. spróbuj
Sadu2
Może to Ci sie przyda CLICK
hondek
Ja zrobilem to tak :

  1. <?php
  2. function mini($foto) {
  3.  
  4. $fotos = "foto/".$foto;
  5. $mini = "mini/".$foto;
  6.  
  7. if (!file_exists($mini)) {
  8. $img = imagecreatefromjpeg("$fotos");
  9. $width = imagesx($img); // szerokosc jpga
  10. $height = imagesy($img); // wysokosc jpga
  11.  
  12. $width_mini = 70; // ustalasz szerokosc (tu akurat 70px, analognicznie mozna ustalic wysokosc)
  13. $x = $width/$width_mini; 
  14. $height_mini = $height/$x;
  15.  
  16. $img_mini = imagecreatetruecolor($width_mini, $height_mini);
  17.  
  18. imagecopyresampled($img_mini, $img, 0, 0, 0, 0, $width_mini , $height_mini, $width , $height);
  19.  
  20. imagejpeg($img_mini, "mini/$foto", 80);
  21. imagedestroy($img);
  22. imagedestroy($img_mini);
  23. }
  24. }
  25. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.