Zdravím všetkých,
nevedel by mi niekto poradiť ako sa dajú meniť rozmery uploadnutého obrázku pomocou php. Chcem zmeniť proste jeho šírku a výšku automaticky pomocou php skriptu. Za odpoveď vopred ďakujem...
Fórum › PHP
PHP a práca s obrázkami
Celkem jednoduchy: zjistis, o jaky se jedna format, nactes jednotlive px do pole (tento krok se bude format od formatu lisit), s pomoci jednoduche matematiky zmenis velikost obrazku a zase exportujes do pozadovaneho formatu.. :-)
To Zelenáč: Ďakujem zo odpoveď, ale mohol by si mi napísať ktorými funkciami by som to dosiahol? Ide o to že tie uploadované obraázky sa na webe zobrazujú aj ako miniatúry, preto chcem na server aby sa ukladali aj ako miniatúry a aj ako pôvodné obrázky do dvoch rôznych adresárov...
fopen, fread, fwrite, fclose
To Zelenáč: ďakujem, vyskúšam to...
A co keby len zistil rozmery obrazku, potom zistil ich pomer a jednoduchymi matematickymi operaciami ho pouzival pri zmensovani/zvacsovani? Myslim, ze strata bude tak ci tak :)Zelenáč píše:#
# Celkem jednoduchy: zjistis, o jaky se jedna format, nactes jednotlive px do pole (tento krok se bude format od formatu lisit), s pomoci jednoduche matematiky zmenis velikost obrazku a zase exportujes do pozadovaneho formatu.. :-)
To Prog.: Ja si z nej srandu nedelam ;-) Maximalne si muze stahnout nejakou knihovnu, ktera bude stejne provadet to same, co jsem napsal... Nebo snad mate nejaky jiny napad???
Smokie píše:#
#A co keby len zistil rozmery obrazku, potom zistil ich pomer a jednoduchymi matematickymi operaciami ho pouzival pri zmensovani/zvacsovani? Myslim, ze strata bude tak ci tak :)Zelenáč píše:#
# Celkem jednoduchy: zjistis, o jaky se jedna format, nactes jednotlive px do pole (tento krok se bude format od formatu lisit), s pomoci jednoduche matematiky zmenis velikost obrazku a zase exportujes do pozadovaneho formatu.. :-)
K cemu ti budou rozmery obrazku, kdyz nebudes mit jeho data? Bez nacteni obrazku - jakym zpusobem chces jeho rozmery zjistit a jak ho chces pote zmensovat/zvetsovat???
Rozhodne nemusis nacitat pixel po pixelu, na meneni rozmeru je funkce imagecopyresized(), podivej se do reference.
Ved ten obrazok ma uploadnuty...takze lahko z neho ziska tie rozmery. A na co chces nacitavat jeho data? Myslim, ze na to ides az zbytocne zlozito...Zelenáč píše:#
##Smokie píše:#
#A co keby len zistil rozmery obrazku, potom zistil ich pomer a jednoduchymi matematickymi operaciami ho pouzival pri zmensovani/zvacsovani? Myslim, ze strata bude tak ci tak :)Zelenáč píše:#
# Celkem jednoduchy: zjistis, o jaky se jedna format, nactes jednotlive px do pole (tento krok se bude format od formatu lisit), s pomoci jednoduche matematiky zmenis velikost obrazku a zase exportujes do pozadovaneho formatu.. :-)
#K cemu ti budou rozmery obrazku, kdyz nebudes mit jeho data? Bez nacteni obrazku - jakym zpusobem chces jeho rozmery zjistit a jak ho chces pote zmensovat/zvetsovat???
Cely jeho problem je ten, ze zrejme chce uploadnuty obrazok zmensit na konkretnu vysku, resp sirku, ale nemoze, pretoze kazdy obrazok ma ine rozmery a moze sa to potom deformovat (prilis vysoke, prilis siroke...).
Teda staci mu len zistit rozmery obrazku, zistit pomer sirka/vyska a potom mu staci len tu pevnu vysku vynasobit tym pomerom a dostane prislusnu sirku obrazku. Jednoducha matematika...
200 / 500 = 0,4
0,4 * 500 = 200
A zmensovat/zvacsovat to bude kludne cez IMG :)
list($width, $height) = getimagesize("./nazov.gif");
$pomer = $width / $height;
$obrazok.= '<img src="./nazov.gif" width="325px" height="'.(325/$pomer).'px">';
alebo
list($width, $height) = getimagesize("./nazov.gif");
$pomer = $width / $height;
$obrazok.= '<img src="./nazov.gif" width="'.(500*$pomer).'px" height="500px">';
To jsou ty lidi co od rana do vecera procitaj reference a potom vedi i o takovych funkcich jako iamgecoyresized =) To ja misto cteni radsi sednu a napisu si f-ci vlastni...
Proc znovu vynalezat kolo...
Ja si reference procital jen kdyz jsem hledal neco konkretniho a nevedel jsem presne co vlastne. Jinak praci s obrazky jsem se naucil pomoci prikladu na php.net, kde se to da docela solidne pochopit. Btw, pochybuju ze je ta tvoje funkce rychlejsi.
Smokie: To je prasarna, prohlizec to stejne musi stahovat cele.
Prog. píše:#
# jo, esteze vies ze existuje nejake to PHP, ze si ho nemusis pisat sam :-D
Ovšem, kdybych si ho sám napsal, získal bych hromadu zkušeností ;-)
Zelenáč píše:#
##Prog. píše:#
# jo, esteze vies ze existuje nejake to PHP, ze si ho nemusis pisat sam :-D
#Ovšem, kdybych si ho sám napsal, získal bych hromadu zkušeností ;-)
A predstav si tie skusenosti, keby si si este pred tym navrhol pocitac, na ktorom by to tvoje php slapalo... vies si to predstavit? vlastne tranzistory, vlstny procak, clovece, ty by si to dotiahol daleko ;-)
Jj, a předtím bych ještě stvořil svět :-P
No nechcel som som aby sa tu niekto hadal kvoli mojmu prispevku, ale zistil som ze asi sme sa az tak nepochopili... Mne nerobi problem si nacitat rozmery obrazku a matematickym vzorcom ho potom zmensit a rozmery vlozit do atributov tagu img, ale ja som chcel aby mi niekto poradil skript, ktory z toho uploadnuteho obrazku urobi taky isty druhy obrazok, len so zmensenymi rozmermi. Cize ide o to, aby spravil druhy subor, ktory bude ten isty obrazok len s mensimi rozmermi. Ten povodny uploadnuty obrazok sa ulozi do jedneho adresara a ten druhy z neho vytvoreny pomocou skriptu php sa ulozi do ineho adresara. Ak by mi vedel niekto poradit, tak prosim poradte...
To george: Způsob který popsal Zelenáč by teoreticky mohl fungovat, ale prakticky je extrémně nevhodný. Je na to potřeba nějaká knihovna pro práci s obrázky, např. výborná Imagick (ImageMagick) http://cz.php.net/manual/en/ref.imagick.php http://www.imagemagick.org, nebo třeba GD http://cz.php.net/manual/en/ref.image.php
GD je dost bezna, uz je snad i na kazdemfreehostingu. Jinak gogli, treba "php resize image".
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Praca s vacsimi obrazkami v C# — založil Jaro
Praca s adresarmi v C++ (readdir/opendir ako v php) — založil martas
Problem s obrazkami — založil Milan
Laravel - pridanie clanku s obrazkami + oznacenie profiloveho — založil miiisapiiisa
Navrh a praca s DB — založil kotlas6667
Moderátoři diskuze