Autor Zpráva
pollo22
Profil
Zdravim vas, takto sa mi vytvara miniatura. automaticky sa zmenši na širku 80px. a ja by som rád aby sa širka nastavila na 80 a výška na 60. šlo by to nejak? ale nechcem aby sa mi obrazky deformovali. a pridavaju sa obrazky rôznych veľkosti.

$miniatura = 80; 
$rozmery = getimagesize("../pozadia/kontrola/$nazov_obrazku.jpg"); 
$pomer = $rozmery[0]/$rozmery[1]; 
$obr = imagecreatetruecolor($miniatura, $miniatura/$pomer); 
$image = imagecreatefromjpeg("../pozadia/kontrola/$nazov_obrazku.jpg"); 
imagecopyresampled($obr, $image, 0, 0, 0, 0, $miniatura, $miniatura/$pomer, $rozmery[0], $rozmery[1]); 
imagejpeg($obr, "../pozadia/miniatury/$nazov_obrazku.jpg"); 
imagedestroy($obr); 
Taps
Profil
pollo22
tak to si myslím že nepůjde, vzhledem k tomu že obrázky mají různé velikosti
pollo22
Profil
nejaky spôsob nato byť musí....ved poznam plno stranok kde uživatelia pridavaju obrazky a potom miniaturi su vsetky rovnakej velkosti
Nox
Profil
pollo22
Pokud nechceš deformaci, tak to musíš skombinovat s ořezem, což je ošidný a musel bys ještě vymyslet jak se to bude počítat
SwimX
Profil
pollo22
můžeš obrázky na výšku zmenšovat na výšku 60 a šírku nechat na poměru, a obrázky na šířku zmenšovat na šíčku 80 a výšku nechat na poměru (nebo obráceně) ale těžko nedeferomovat a přitom dát fixní rozměr 80x60
pollo22
Profil
videl som riešenie na jednej stranke take že pri miniature sa zmenšil obrazok na širku 80X40 a zbytok sa vyplnil bielou farbou čiže miniatura mala 80x60...
SwimX
Profil
pollo22
V případě že obrázek je na výšku pak to jde. Ale co když bude na šířku? Dá se ti 80x120 a? Pak bys musel zmenšovat šířku na 60 a doplňovat bílou barvou výšku. Však jsem to psal..
AM_
Profil
       
$prev_w = 100; //sirka nahledu
$prev_h = 150; //vyska nahledu
$vysledek = ImageCreateTrueColor($prev_w, $prev_h); //cilovy obrazek
$pozadi = imagecolorallocate($vysledek, 153, 153, 153);
//sedy podklad (vypln kolem obrazku, pokud nesedi pomer stran originalu a nahledu)
imagefilledrectangle($vysledek, 0, 0, $prev_w, $prev_h, $pozadi);
list($width, $height, $type, $attr) = getimagesize($filename);
if($prev_w*$height > $prev_h*$width){ //vlevo a vpravo zustane sedy pruh
  $pw = ($prev_h / $height) * $width;
  $ph = $prev_h;
} else { //nahore a dole zustane sedy pruh (touhle vetvi to prochazi taky pokud nezustane nikde)
  $pw = $prev_w;
  $ph = ($prev_w / $width) * $height;
}

//vycentrovani obrazku v tom rozmeru, ve kterem nezabira celou plochu nahledu
$dest_x = ($ph == $prev_h) ? floor(($prev_w-$pw)/2): 0;
$dest_y = ($pw == $prev_w) ? floor(($prev_h-$ph)/2): 0;

//zvolime metodu, jakou vytvorime nahledy (resampled=kvalitnejsi, pomalejsi; na necachovany nahled vice obrazku na jedne strance rozhodne resized)
if($_GET['resize']=='fast'){
  imagecopyresized($vysledek, $img, $dest_x, $dest_y, 0, 0, $pw, $ph, $width, $height);
} else {
  imagecopyresampled($vysledek, $img, $dest_x, $dest_y, 0, 0, $pw, $ph, $width, $height);
}
dRaGen
Profil
Popřípadě lze použít to že zadáš maximální šířku a výšku
function resizer( 
  $filename, //cesta k souboru, ktery chcete zmensit  
  $copypath, //cesta, kam zmenseny soubor ulozit  
  $MaxWidth, //maximalni sirka zmenseneho obrazku  
  $MaxHeight) //maximalni vyska zmenseneho obrazku 
  { //zjistime puvodni velikost obrazku  
  list($OrigWidth, $OrigHeight) = getimagesize($filename); //hodnota 0 v parametrech MaxWidth resp. MaxHeight znamena, //ze sirka resp. vyska vysledku muze byt libovolna  
  if ($MaxWidth == 0) $MaxWidth = $OrigWidth; 
  if ($MaxHeight == 0) $MaxHeight = $OrigHeight; //nyni vypocitam pomer zmenseni 
  $pw = $OrigWidth / $MaxWidth; $ph = $OrigHeight / $MaxHeight; if ($pw > $ph) $p = $pw; else  $p = $ph; if ($p < 1) $p = 1; //v p ted mame pomer pro zmenseni //vypocitame vysku a sirku zmenseneho obrazku 
  $NewWidth = (int)$OrigWidth / $p; $NewHeight = (int)$OrigHeight / $p; //vytvorime novy obrazek pozadovane vysky a sirky  
  $image_p = imagecreatetruecolor($NewWidth, $NewHeight); //otevreme puvodni obrazek se souboru  
  $image = imagecreatefromjpeg($filename); //a okopirujeme zmenseny puvodni obrazek do noveho  
  imagecopyresampled($image_p, $image, 0, 0, 0, 0, $NewWidth, $NewHeight, $OrigWidth, $OrigHeight); //a ulozime 
   imagejpeg($image_p, $copypath, 100); }

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: