anonīms Posted April 7, 2010 Report Share Posted April 7, 2010 (edited) Kā apmēram var veikt resize pēc maxwidth/maxheight? Teiksim, ja bildes platums vai augstums pārsniedz kkādus px, tad bilde tiek resaizota, bet nevis uz noteiktu (piem 200x200), bet gan proporcionali orginalam. Ceru, ka sapratāt. omfg. Daļa bez komatiem xD Edited April 7, 2010 by anonīms Quote Link to comment Share on other sites More sharing options...
ohmygod Posted April 7, 2010 Report Share Posted April 7, 2010 amm, skaties, kura mala pārsniedz maximumu - pēc tās rēķini attiecību, dalīts ar cik būs max izmērs. Otras malas garumu izdali ar to attiecību un bildes proporcijas saglabāsies. Quote Link to comment Share on other sites More sharing options...
Kaklz Posted April 7, 2010 Report Share Posted April 7, 2010 Pieņemsim, ka tev ir bilde 350x480px, kuru tu gribi iebāzt 200x250px thumbnailā Sarēķini, cik proporcionāli liela bilde tev ietilpst konkrētajā dimensijā 200 / 350 = 0.57 250 / 480 = 0.52 Te tevi interesē, kura bilde būs jāsamazina vairāk, tā dimensija arī ir jāņem par galveno. Te sanāk, ka, lai bilde ietilptu 250 px vinjai augstumā ir jābūt 52% no oriģināla. Attiecīgi lai saglabātu proporciju tev arī horizontālā dimensija ir jāsamazina par 52%. Līdz ar to horizontālā dimensija pārtop par: 350 * 0.52 = 182 Rezultātā tev ir bilde 250x182px. Tā kā 182 ir mazāks par 200, tad būtu loģiski nocentrēt pa horizontāli to bildi - sameklē nobīdi no malas (200 - 182) / 2 = 9 un pēc tam izdomā, kā šos visus ciparus pareizi salikt šajā funkcijā: http://lv.php.net/imagecopyresampled Identiski arī ar gadījumu, kad vairāk ir jāsamazina horizontālā dimensija. Quote Link to comment Share on other sites More sharing options...
kirils Posted April 8, 2010 Report Share Posted April 8, 2010 system("convert bilde.jpg -resize 100x100 bilde.jpg"); shis paarveidos bildi taa, lai neviena dimensija neparsniedz 100px. proporcijas tiks saglabaatas. jaabuut uzinstaleetam imagemagick-bin. un darbojas daudz aatraak nekaa tiira php risinaajums. Quote Link to comment Share on other sites More sharing options...
Roze Posted April 8, 2010 Report Share Posted April 8, 2010 un darbojas daudz aatraak nekaa tiira php risinaajums. php GD ir kādas 2-3x (ja ne vēl) atrāks par IM .. nemaz nerunājot ja vienlaicīgi jaresaizo vairākas bildes tad Magicks un kaste atpūšas vispār. Kaut kāds fiksais kods no arhīviem: function thumb($source, $dest, $w = 0, $h = 0) { $size = getimagesize($source); if ($w && $size[0] > $w) { $ratio = $size[0] / $w; } elseif($h && $size[1] > $h) { $ratio = $size[1] / $h; } $ratio = max($ratio, 1.0); $w = (int)($size[0] / $ratio); $h = (int)($size[1] / $ratio); if($w && $h) { $resize = imagecreatetruecolor($w, $h); if($size[2] == 2) { $img = imagecreatefromjpeg($source); imagecopyresampled($resize, $img, 0, 0, 0, 0, $w, $h, $size[0], $size[1]); imagejpeg($resize, $dest,95); } elseif($size[2] == 1) { $img = imagecreatefromgif($source); imagecopyresampled($resize, $img, 0, 0, 0, 0, $w, $h, $size[0], $size[1]); imagegif($resize, $dest); } elseif($size[2] == 3) { $img = imagecreatefrompng($source); imagecopyresampled($resize, $img, 0, 0, 0, 0, $w, $h, $size[0], $size[1]); imagepng($resize, $dest); } imagedestroy($img); return filesize($dest); } else { return 0; } } Lietojums apmēram šāds (atgriež thumbnaila faila izmēru vai 0): <? thumb('vecabilde.jpg','thumbnails.jpg',[opcionaals_max_platums],[opcionaals_max_augstums]); ?> Primārais tiek ņemts vērā platums (var sakombinēt kā vajag proti ņemt vērā mazāko izmēru utt). Quote Link to comment Share on other sites More sharing options...
anonīms Posted April 13, 2010 Author Report Share Posted April 13, 2010 Baigais Q. Kādēļ gan GIF, gan PNG bildes ir melnas, bet ar JPG viss ok? http://paste.php.lv/a619993bd15d1d0a60cda61585aac806?lang=php Quote Link to comment Share on other sites More sharing options...
php newbie Posted April 13, 2010 Report Share Posted April 13, 2010 varbūt tāpēc kā 39. rindiņā ir imagejpeg($tmp,$filename,100); es kadreiz izmantoju http://www.white-hat-web-design.co.uk/articles/php-image-resizing.php diezgan forši viss gāja Quote Link to comment Share on other sites More sharing options...
anonīms Posted April 13, 2010 Author Report Share Posted April 13, 2010 Tur tie brīnumi, ka agrāk šis kods gāja ar gifiem un png, bet tagad čušs. Bet nu ok, skatīšos Quote Link to comment Share on other sites More sharing options...
anonīms Posted April 13, 2010 Author Report Share Posted April 13, 2010 php newbie, tavs dotais links ir vnk awesome. Tik viens jautājums palicis. Īsti neatradu tur dokumentāciju, kur būtu par to rakstīts, bet nu, ja teiksim ir resizeToW 200. Kā varētu iegūt, ja teiksim bildes W ir 120, tad nekas netiek resaizots (tas pats ar H). Jautājums ir vai šāda iespēja ir iestrādāta. Quote Link to comment Share on other sites More sharing options...
php newbie Posted April 13, 2010 Report Share Posted April 13, 2010 es to izmantoju lai veidotu thumbnails. nemēģināju palielināt, bet apskatijos kodu un tīri teorētiski tā māk arī palielināt. tā klase izmanto php funkciju imagecopyresampled un php.net aprakstā "If the source and destination coordinates and width and heights differ, appropriate stretching or shrinking of the image fragment will be performed." Quote Link to comment Share on other sites More sharing options...
anonīms Posted April 13, 2010 Author Report Share Posted April 13, 2010 Nu ar to resaizošanu nevajadzētu būt īpašām prob sataisīt. Gribēju tik zināt vai nav iestrādāts jau. Bet nu ok. Mēģināšu ķerties kkad klāt un, ja sanāks, tad došu ziņu. Quote Link to comment Share on other sites More sharing options...
anonīms Posted April 13, 2010 Author Report Share Posted April 13, 2010 Its fuc*ing NOTawesome. Tik un tā png izvelk kā melnu bildi kaut arī no cita PC gāja. :/ Ir iespēja, ka hostinga vaina? Quote Link to comment Share on other sites More sharing options...
blackhalt Posted April 15, 2010 Report Share Posted April 15, 2010 http://lv.php.net/manual/en/function.imagecopyresampled.php skat. Example #2 Quote Link to comment Share on other sites More sharing options...
mounkuls Posted April 15, 2010 Report Share Posted April 15, 2010 Its fuc*ing NOTawesome. Tik un tā png izvelk kā melnu bildi kaut arī no cita PC gāja. :/ Ir iespēja, ka hostinga vaina? Palaid gd_info();, varbūt hostings neatbalsta nemaz visus formātus. Pašam ir bijis tā, no png nācās atteikties. Quote Link to comment Share on other sites More sharing options...
anonīms Posted April 15, 2010 Author Report Share Posted April 15, 2010 (edited) Atļauts ir. array(12) { ["GD Version"]=> string(27) "bundled (2.0.34 compatible)" ["FreeType Support"]=> bool(true) ["FreeType Linkage"]=> string(13) "with freetype" ["T1Lib Support"]=> bool(true) ["GIF Read Support"]=> bool(true) ["GIF Create Support"]=> bool(true) ["JPG Support"]=> bool(true) ["PNG Support"]=> bool(true) ["WBMP Support"]=> bool(true) ["XPM Support"]=> bool(true) ["XBM Support"]=> bool(true) ["JIS-mapped Japanese Font Support"]=> bool(false) } Bet interesanti ir tas, ka vecais kods, kas uz cita hostinga gāja ar PNG, tagad arī ar PNG neiet.PNG Support is enabled Edited April 15, 2010 by anonīms Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.