| | |
| Stránka: 1 z 1
| [ Príspevkov: 16 ] | |
Autor | Správa |
---|
Registrovaný: 01.09.07 Prihlásený: 18.05.11 Príspevky: 141 Témy: 36 Bydlisko: 127.0.0.1 | Napísal tatysp: 07.01.2008 13:55 | |
|
Ako sa dá cez PHP zmenšiť veľkosť (rozmerov v px) obrázku ? Viem že sa to nejako dá, len neviem ako - chcel by som vytvoriť skript, ktorý by pri upload-e nahral obrázok ako napr xyz.jpg a hneď by z toho súboru vygeneroval zmenšeninu a tu uložil ako xyz_small.jpg. Raz som to videl v nejakej galérií, len už neviem jej názov. Nevie niekto ako sa to dá ? Pravdepodobne to bude chcieť nejakú knižnicu, tak potom tu hoďte aj jej názov
|
|
Registrovaný: 30.05.06 Prihlásený: 08.10.14 Príspevky: 1756 Témy: 35 Bydlisko: BA - WESTSIDE | Napísal p360t: 07.01.2008 14:35 | |
|
_________________
A. S. Tanenbaum píše: The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice. |
|
Registrovaný: 01.09.07 Prihlásený: 18.05.11 Príspevky: 141 Témy: 36 Bydlisko: 127.0.0.1 | Napísal autor témy tatysp: 07.01.2008 14:44 | |
|
a čo tak dať tu presnú funkciu a jej popis ? nie každý vie po ang tak dobre
_________________ It easier to run away |
|
Registrovaný: 17.10.06 Prihlásený: 08.01.11 Príspevky: 1752 Témy: 17 | Napísal suchy: 07.01.2008 15:15 | |
|
no tych funkcii je tam viac. inak myslim, ze nazvy funkcii su celkom vystizne, takze to pochopi aj clovek so slabsou anglictinou.
_________________ A Real Programmer might or might not know his wife's name. He does, however, know the entire ASCII code table. |
|
Registrovaný: 01.09.07 Prihlásený: 18.05.11 Príspevky: 141 Témy: 36 Bydlisko: 127.0.0.1 | Napísal autor témy tatysp: 07.01.2008 15:23 | |
|
hmm ale mne sa moc nechce prechádzať tým zoznamom
_________________ It easier to run away |
|
Registrovaný: 01.09.07 Prihlásený: 18.05.11 Príspevky: 141 Témy: 36 Bydlisko: 127.0.0.1 | |
Registrovaný: 29.12.05 Prihlásený: 14.08.18 Príspevky: 539 Témy: 62 Bydlisko: 127.0.0.1 (... | Napísal qacer: 07.01.2008 16:04 | |
|
hodim sem v bodoch postup a len funkcie k tomu
1.najprv si musis nacitat samotny obrazok kt. ces spracovat:
Kód: ImageCreateFromGif ImageCreateFromJpeg ImageCreateFromPng 2. potom z neho vyberes sirku a vysku Kód: ImageSX ImageSY 3. ziskane velkosti spracujes na mensie(matematicke ukony) 4. nastavis platno Kód: imagecreatetruecolor 5. nastavis farby pozadia Kód: imagecolorallocate 6. vyplnis platno farbou Kód: imagefill 7. spracujes samotny obrazok Kód: ImageCopyResized 8. ulozis obrazok Kód: imagejpeg imagegif imagepng 9. vymazes obrazok z pameti Kód: imagedestroy
samozrejme ze toto je len pre jeden obrazok
ked chces ulozit vecsi bez uprav staci len move_uploaded_file, alebo pokial chces spracovat aj mensi aj vecsi treba kazdu funckiu dat 2x pre kazdy
tento navod je len to najjednoduhsie a niektore fukcie sa daju zapisat aj inymi funkciami
_________________ "Kde končí hiphop, začína IQ." |
|
Registrovaný: 14.06.07 Prihlásený: 27.12.11 Príspevky: 72 Témy: 13 | Napísal chiwo: 07.01.2008 19:07 | |
|
qacer píše: hodim sem v bodoch postup a len funkcie k tomu 1.najprv si musis nacitat samotny obrazok kt. ces spracovat: Kód: ImageCreateFromGif ImageCreateFromJpeg ImageCreateFromPng 2. potom z neho vyberes sirku a vysku Kód: ImageSX ImageSY 3. ziskane velkosti spracujes na mensie(matematicke ukony) 4. nastavis platno Kód: imagecreatetruecolor 5. nastavis farby pozadia Kód: imagecolorallocate 6. vyplnis platno farbou Kód: imagefill 7. spracujes samotny obrazok Kód: ImageCopyResized 8. ulozis obrazok Kód: imagejpeg imagegif imagepng 9. vymazes obrazok z pameti Kód: imagedestroy samozrejme ze toto je len pre jeden obrazok ked chces ulozit vecsi bez uprav staci len move_uploaded_file, alebo pokial chces spracovat aj mensi aj vecsi treba kazdu funckiu dat 2x pre kazdy tento navod je len to najjednoduhsie a niektore fukcie sa daju zapisat aj inymi funkciami
pekna praca aj ja to asi vyuzijem casom diky aj za mna
|
|
Registrovaný: 24.02.07 Prihlásený: 24.08.09 Príspevky: 146 Témy: 31 Bydlisko: Martin |
na zmensenie obr. tolko krokov? wow )
|
|
Registrovaný: 29.12.05 Prihlásený: 14.08.18 Príspevky: 539 Témy: 62 Bydlisko: 127.0.0.1 (... | Napísal qacer: 07.01.2008 21:58 | |
|
jj...ja skript kt. vyuzivam bez vsetkych zbytocnosti ma 130 riadkov(som sa s nim sral asi 2 dni kym som prisiel na spravnu kombinaciu ) a najdlhsi je bod 3: urcenie velkosti pomocou matematickych prikazov
ale v tom skripte mam pevne definovanu sirku aj vysku mensieho obrazku, vytvorim platno o tej velkosti a zmenseny obrazok vkladam do neho v spravnom pomere do stredu a zvysok vyplnim nejakou farbou
Da sa to robit aj ze vytvori zmenseny obrazok priamo so spravnymi pomermi stran, ale to sa nehodi pri fotogaleriach, kde by mali byt zmenseniny v rovnakej velkosti a po kliknuti sa zobrazi velky obrazok (tak pouzivam ten prvy postup)
_________________ "Kde končí hiphop, začína IQ." |
|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 Bydlisko: Levice |
Ja to mam riesene takto: Kód: $KamUlozit = "obrazky/$subor; //cesta, kam zmenseny subor ulozit $NovaSirka = 65; //maximalna sirka zmenseneho obrazku $NovaVyska = 60; //maximalna vyska zmenseneho obrazku { //zistime povodnu velkost obrazku list($sirka, $vyska) = getimagesize($subor);
$image_p = imagecreatetruecolor($NovaSirka, $NovaVyska); //otvorenie povodneho obrazku zo suboru $image = imagecreatefromjpeg($subor); //okopirujeme zmenseny obrazok do povodneho
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $NovaSirka, $NovaVyska, $sirka, $vyska);
//a ulozime imagejpeg($image_p, $KamUlozit, 70); //to cislo 70 urcuje kvalitu, v akej sa ma obrazok ulozit } Cize z velkeho obrazku ti spravi miniaturu, ktoru ti ulozi do adresara na serveri a stadial to uz zobrazis Kód: <img src="<?echo $KamUlozit;?>"
Mne zmensuje obrazok ktory vkladam do databazy, ale tu som to trochu prerobil, aby si nemusel pouzivat MySQL. Vid priklad vyuzitia tohto scriptu na http://www.metalcovers.ic.cz Hned na uvodnej stranke tie 3 miniatury.
|
|
Registrovaný: 30.05.06 Prihlásený: 08.10.14 Príspevky: 1756 Témy: 35 Bydlisko: BA - WESTSIDE | Napísal p360t: 08.01.2008 13:54 | |
|
Citácia: hmm ale mne sa moc nechce prechádzať tým zoznamom
Hmmmmm, ale mne sa moc nechce ti radiť
Aké z toho plynie ponaučenie? Nabudúce budeš usilovnejší (lebo ti už fakt neporadím a poviem adminovi nech ťa vyhodí ).
Môj kód:
Kód: // --------- ULOZIME ARCHIV if ($_FILES['f_zip']['name'] == '') { exit(); }
$file = my_jpg_image_name($_FILES['f_zip']['name']); $ciel="../pic_temp/".$file; move_uploaded_file($_FILES['f_zip']['tmp_name'], $ciel) or die ("Smrt kapitalizmu! (subor sa nepodarilo ulozit na server)"); // vytvor zmenseninu // Get new dimensions list($width, $height) = getimagesize($ciel); // velke foto if ($width > FOTO_GAL_X) { $new_width = FOTO_GAL_X; $new_height = ceil(FOTO_GAL_X * $height / $width); // Resample $image_p = imagecreatetruecolor($new_width, $new_height); $image = imagecreatefromjpeg($ciel); imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); $new_nahlad = "../pic_fotky/".$file; // Output imagejpeg($image_p, $new_nahlad, PART_QUAL); } // nahlad $x_const = FOTO_THUMB_X; $y_const = FOTO_THUMB_Y; if($width > $x_const || $height > $y_const){ // ak je aspon jeden rozmer vascsi, ideme menit obr. // nastav spravne nove rozmery if ($width > $x_const && $height > $y_const) { if ($height > $width){ $new_width = $y_const * $width / $height; $new_height = $y_const; } else { // na sirku $new_width = $x_const; $new_height = $x_const * $height / $width; } } elseif ($width > $x_const && $height <= $y_const) { $new_width = $x_const; $new_height = $x_const * $height / $width; } elseif ($width <= $x_const && $height > $y_const) { $new_width = $y_const * $width / $height; $new_height = $y_const; } // nove rozmery nastavene // Resample $image_p = imagecreatetruecolor($new_width, $new_height); $image = imagecreatefromjpeg($ciel); imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); $new_nahlad = "../pic_nahlady/".$file; // Output imagejpeg($image_p, $new_nahlad, PART_QUAL); } else { copy($ciel, "../pic_nahlady/".$file); } unlink($ciel); // uloz do databazy $result = mysql_query("BLA BLA nejaky SQL prikaz"); if ($result) { echo "Nech zije socialisticky tabor (fotka uspesne ulozena)!"; exit(); }
Je to trochu oklieštené, pôvodná verzia ešte rozbaľuje ZIP súbor plný JPEG obrázkov a všetky ich zmenšuje (ale používa pri tom neštandardnú knižnicu).
Robí ukladanie obrázkov v 2 vrstvách - pre náhľad a pre zobrazenie na stránke. Do konštánt FOTO_GAL_X, FOTO_THUMB_X, FOTO_THUMB_Y, PART_QUAL definuj hodnoty (v poradí) "šírka fotky na stránke", "šírka náhľadu", "výška náhľadu", "JPEG kvalita (od 0 do 100, odporúčam nad 70, je to tuším nepovinný parameter s východziou hodnotou 75)".
_________________
A. S. Tanenbaum píše: The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice. |
|
Registrovaný: 09.02.07 Prihlásený: 26.01.15 Príspevky: 257 Témy: 20 | Napísal mondzo: 08.01.2008 14:06 | |
|
p360t -> velmi pekne, dal si mi do hlavy celkom fajn myslienku a preto sa Ta chcem spytat (ja viam ako na zmensenie obrazkov atd.), ale aku kniznicu pouzivas na to zipko a ako to presne pracuje?
Heh, mam jednoduchu fotogaleriu na webe, moju vlastnu aj s jednoduchym adminom, kde sa daju uploadovat fotky, manazovat ich nazvy, popisy atd., ktore sa potom zmensuju a robi sa este aj thumbnail z nich, ale uploadujem vzdy len po 4 fotky, kvoli pomalemu uploadu mojho internetu. Robil som to pre moju drahu, keby to bolo pre mna, nahadzem na web cez ftp, urobim update databazy atd.
No myslienka s tym zipkom by mi celkom bodla, keby som to rozchodil tak by sa mozno vyriesilo tym velmi vela problemov.
Cez ftp nahodit na server zipko a v adminovi ho uz potom manazovat.
Dik...
|
|
Registrovaný: 30.05.06 Prihlásený: 08.10.14 Príspevky: 1756 Témy: 35 Bydlisko: BA - WESTSIDE | Napísal p360t: 08.01.2008 14:19 | |
|
So Zipkom je to totiž tak - niekto ho na hostingu má, niekto nemá. Niekto má admina hostingu ochotného, niekto neochotného. Niekto má na svojom hostingu veľké práva, niekto malé. Vyber si vždy tú horšiu možnosť a dostaneš hosting, na ktorom som toto zipko realizoval.
Tak som sa jedného krásneho rána poobzeral po internete, a zistil som, že rovnaký problém majú aj iní ľudia. A tiež, že to už niekto takmer spoľahlivo vyriešil.
Takže, stránka http://www.phpconcept.net knižnica PCLZIP, naštuduj a už ti to bude jasné (to isté ako v tomto mojom kóde sa robí pre každý JPEG súbor ktorý tá knižnica rozozná, naviac ak nahrávaš len jeden JPEG súbor, spracuje sa len ako jeden súbor - tj. rozoznáva sa typ nahrávaného súboru).
Opakujem, toto je neštandardné riešenie v prípade, že nemáš originálnu PHPčkovskú ZIP knižnicu a nemáš možnosť ju na hosting nainštalovať.
_________________
A. S. Tanenbaum píše: The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice. |
|
Registrovaný: 21.06.07 Prihlásený: 06.05.13 Príspevky: 421 Témy: 4 | Napísal sento: 08.01.2008 14:35 | |
|
Hned na zaciatok podotykam, ze nie som odporcom PHP;
Ja pouzivam .NET a C# na servri, a tam nie je problem mat nainstalovanu akukolvek kniznicu. Zmensovanie obrazkov (presnejsie prekonvertovanie do akehokolvek formatu a zmena rozmerov) je potom v C# jednoduche.
|
|
Registrovaný: 02.07.06 Prihlásený: 30.01.20 Príspevky: 1635 Témy: 137 Bydlisko: Slovakia - ... | Napísal javo: 08.01.2008 17:18 | |
|
sento píše: Hned na zaciatok podotykam, ze nie som odporcom PHP;
Ja pouzivam .NET a C# na servri, a tam nie je problem mat nainstalovanu akukolvek kniznicu. Zmensovanie obrazkov (presnejsie prekonvertovanie do akehokolvek formatu a zmena rozmerov) je potom v C# jednoduche.
ok nie si odporcnom PHP, ale co si tym chcel vlastne povedat? na PHP to tiez nie je problem tiez ak mas dobry host, resp. mas vlastny host,
_________________ Zivot je jednoduchy , staci sa rozhodnut a neobzerat sa spat. Poriadok je pre blbcov, inteligent zvlada chaos. |
|
| Stránka: 1 z 1
| [ Príspevkov: 16 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| Generovanie ... v Ostatné | 5 | 922 | 30.10.2006 22:14 javo | | Generovanie diplomu v PHP, ASP | 8 | 729 | 12.05.2012 13:59 shaggy | | Generovanie kódu v HTML, XHTML, XML, CSS | 9 | 605 | 10.02.2011 21:25 walther | | Generovanie databazy v PHP, ASP | 2 | 732 | 23.02.2007 8:25 mokus | | generovanie stranok v PHP, ASP | 4 | 536 | 04.01.2011 13:22 benqo | | Generovanie PDF v PHP, ASP | 1 | 574 | 16.04.2011 8:41 stenley | | generovanie url v PHP, ASP | 7 | 578 | 30.03.2012 23:04 shaggy | | generovanie PDF v PHP, ASP | 20 | 1928 | 05.05.2010 13:18 Antuanet | | Generovanie cisel v PHP, ASP | 5 | 920 | 06.02.2010 17:44 Ďuri | | Generovanie xml v PHP, ASP | 2 | 594 | 06.11.2010 9:57 NikonD5000 | | TCPDF generovanie PDF v PHP, ASP | 8 | 653 | 18.08.2011 14:52 emer | | Generovanie IP adresy v Služby a webstránky | 10 | 1518 | 19.02.2014 11:33 DJRoccoiNc | | Generovanie PDF - FPDF v PHP, ASP | 6 | 477 | 14.01.2013 20:22 xxx9955 | | Náhodné generovanie slovíčok v Ostatné programy | 1 | 334 | 13.05.2012 16:31 KocuR | | PHP generovanie XML v PHP, ASP | 4 | 845 | 12.04.2011 14:22 general667 | | Generovanie podla Rozlisenia v PHP, ASP | 2 | 457 | 06.05.2009 11:03 Flety |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|