Autor | Zpráva | ||
---|---|---|---|
pollo22 Profil |
#1 · Zasláno: 18. 2. 2009, 19:29:52
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 |
#2 · Zasláno: 18. 2. 2009, 19:33:16
pollo22
tak to si myslím že nepůjde, vzhledem k tomu že obrázky mají různé velikosti |
||
pollo22 Profil |
#3 · Zasláno: 18. 2. 2009, 19:35:03
nejaky spôsob nato byť musí....ved poznam plno stranok kde uživatelia pridavaju obrazky a potom miniaturi su vsetky rovnakej velkosti
|
||
Nox Profil |
#4 · Zasláno: 18. 2. 2009, 19:36:30
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 |
#5 · Zasláno: 18. 2. 2009, 19:38:48
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 |
#6 · Zasláno: 18. 2. 2009, 19:39:07
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 |
#7 · Zasláno: 18. 2. 2009, 19:46:58
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 |
#8 · Zasláno: 18. 2. 2009, 22:17:56
$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 |
#9 · Zasláno: 18. 2. 2009, 23:31:19
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); } |
||
Časová prodleva: 15 let
|
0