Oldalarányt megtartó méretezés PHP-ben, GD-vel
Hello,
Egy most indult kep-kiszolgalo webmestere vagyok es van egy kisebb problemam a GD library-val: az altala letrehozott thumbnail-ok mindig adott meretuek. Vagyis en megadom elore a meretet es a GD-konyvtar az adott meretu kepet hozza letre.
De, ezaltal a kepek mindig, mondjuk ugy furcsan neznek ki. Erre az en megoldasom, sajat velemenyem szerint az lenne hogy szazalekban adjam meg a meretet.
Viszont nem tudom hogy hogy fogjak bele, es egyaltalan meg lehet-e ezt tenni a GD-vel.
Elore is koszonom.
■ Egy most indult kep-kiszolgalo webmestere vagyok es van egy kisebb problemam a GD library-val: az altala letrehozott thumbnail-ok mindig adott meretuek. Vagyis en megadom elore a meretet es a GD-konyvtar az adott meretu kepet hozza letre.
De, ezaltal a kepek mindig, mondjuk ugy furcsan neznek ki. Erre az en megoldasom, sajat velemenyem szerint az lenne hogy szazalekban adjam meg a meretet.
Viszont nem tudom hogy hogy fogjak bele, es egyaltalan meg lehet-e ezt tenni a GD-vel.
Elore is koszonom.
hasonló
pl. php.net-en találsz példakódokat a GD-hez:
http://hu2.php.net/manual/en/function.imagecopyresampled.php
BL
re
De szerinted a %-os megoldas jo otlet? Azt fogom elerni vele amit akarok, vagyis hogy ne legyenek a thumbnail-ok furcsak, vagy ez csak egy alom?
furcsa???
Mit értesz azon, hogy furcsán néznek ki??
Torzak?
Ha igen, akkor az lehet a probléma, hogy a képek magasság - szélesség aránya eltér, te viszont fix méretet adsz meg mind a magasságra mind a szélességre.
Nekem egy batch fileos volt, ami mérettartó volt, de szerintem GD-ben is van erre megoldás.
re
Peldaul ha egy 1280x768 Jpeg file-t 200*200-asra konvertalom akkor egy igen torz kepet kapok.
Ezert gondoltam hogy egy %-os megoldas jo otlet lenne. Csak azt nem tudom hogy jo otlet lenne-e...
A batch-file-os megoldas nemhiszem hogy jo otlet mivel jelenleg php/gd-vel vannak kezelve a kepek es hogy ugyanazokat a funkciokat batch-el tegye meg a szerver, ujra kene irjam az egesz oldalt/engine-t. Es valoszinuleg tobb rendszeridot es memoriat is hasznalna ami egy imagehost eseteben nem a legjobb otlet...
Kosz a hozzaszolast.
arányok
egyébként meg hadd kérdezzem már meg, hogy minek is csinálsz te imagehostingot, ha egy ilyen minimális logikát és matekot igénylő kicsinyítést nem bírsz egyedül megalkotni?
ne haragudj, csak elég furcsának találom, hogy újabban elszaporodtak az "itt van az oldalam, amivel hirdetem magam, mint webfejlesztő, de ezt meg ezt nem tudom megoldani, csináljátok már meg helyettem" típusú problémák mind html-css, mind php témában.
Re:off
Az imagehost eredetileg egy eleg nagy, tobb mint egy millio felhasznalot katalogizalt forumnak keszult, hogy legyen egy megbizhato es stabil kep-kiszolgaloja. Ez egy uj projektem, ami nem kis fejfajast okozott mivel meg soha nem hasznaltam kep processzorokat. Es az en koromban mar nem tanul konnyen az ember ;). Ezert kellett a segitseg es koszonom a tipped, valoban egyszerubb a dolog mint gondoltam.
bocsánat
(és ez még mind semmi, mert van olyan ember is itt a fórumon, aki szerintem szinte az összes munkáját itt oldatja meg, főleg a html, css részt, mert még mindig nem tud összerakni egy több hasábos oldalt...)
és amikor azt írtad, hogy imagehost, az újabban egyre jobban szaporodó képfeltöltős oldalak lebegtek a szemem előtt (amiken mellesleg kismillió reklám van), és azt feltételeztem - rosszul -, hogy te is egy hasonló szolgáltatást akarsz indítani.
sok sikert az oldalhoz, és azt javaslom, hogy nézz utána pár parancssorból is használható képmanipuláló eszköznek is, mint pl az imagemagick, mert ezek nem hiszem, hogy jobban terhelnék a szervert.
re:
Egyebkent pedig azt a megoldast hasznaltam amit te ajanlottal, megpedig igy:
Nagyon szepen koszonom,
manual
a "rádförmedés" pedig - mint mondtam - nem csak neked szólt, miután elmondtad a célod pedig egyáltalán nem.
fölösleges imagecopy
Ha már itt tartunk, az eredeti képre is lehetne nyomni egy síma (mérettartó) konvertálást, így védeni a felhasználókat a prepartált képektől. Ugyanígy maximálni is lehetne a méretet (ha pl. valaki felnyomja a digi gépéről a 6mpixeles képet).
preparálás = ?
= buherálás
pl
http://www.google.com/search?hl=en&client=opera&rls=en&hs=vom&q=windows+gif+exploit&btnG=Search
vagy
http://www.google.com/search?hl=en&client=opera&rls=en&hs=AAS&q=explorer+jpg+exploit&btnG=Search
konkrét hibaüzenet
resample
a százalékot itt felejtsd el
Azt, hogy GD-vel olyan képfájlt generálsz, aminek a méretei %-osan vannak megadva (ha jól értem), felejtsd el, mert ez így nem értelmezett. A százalék, relatív értékmegadás, csak akkor értelmezhető. ha megvan, hogy mihez képest. Ez egy html kódban megvan (a befoglaló helyhez képest), de egy önálló képfájlban, ami bárhol megjelenhet, ott nem. Ha ebbe logikusan belegondolsz, magad is rájössz.
Okszerűen nem is lehet ilyen képet generálni - nekem még eszembe nem jutott kipróbálni, de valószínű hibát fog dobni.
Én így oldottam meg: definiáltam egy max. befoglaló méretet, amiből nem lóghat ki pl: width=100px, height=100px. Ha a tumbkép kicsinyített mérete ennél nagyobb lenne, oldalarányosan(!) határozom meg a valódi tumbméretet.
Pl: eredeti méret: 600x200px, oldalarány: 3/1, korrigált tumbméret: 100x33px.
Az oldalarányos meghatározáshoz egy egyszerű aránypárt kell állítani, néhány sor az egész.
Ne felejtsük el azt a helyzetet sem lekezelni, ha az egyik méretre float jönne ki - képméretnek csak integer adható meg.