IT NEWS PC REVUE PC FORUM FreeBSDInternet time: @747
Obsah fóra
Pravidlá  •  Kontakt  •  Prihlásenie  •  Registrácia

Spoločnosti Online s.r.o.

Ponúkame čisté spoločnosti. Obchodný register vybavíme za vás! www.spolecnostionline.cz

Auto žiarovky - dobré ceny

Vyššia svietivosť, dlhšia životnosť. Lepšie osvetlenie pre vyššiu bezpečnosť. www.autok.sk

NIVEA proti celulitíde

Rad Q10 plus pre viditeľne pevnú a hladkú pokožku už za dva týždne. www.NIVEA.sk

Zaregistruj sa!

Tvoj názor sa ráta a oplatí! Pridaj sa a vyhraj iPad. www.marketagent.com

Poistenie domácnosti

V prípade núdze sa postaráme o Vaše náhradné bývanie - UNIQA Assistance www.uniqa.sk

Generovanie zmenseniny obrazku

Zaslať odpoveď
AutorSpráva
tatysp
Užívateľ
Užívateľ

Založený: 01.09.2007
Príspevky: 141
Bydlisko: 127.0.0.1

PríspevokZaslal: Po 07.01.08 14:55Odpovedať s citátomNávrat hore

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
Zobraziť informácie o autoroviOdoslať súkromnú správuICQMSNSkypeYahooAOLZobraziť autorove WWW stránky
p360t
Skúsený užívateľ
Skúsený užívateľ

Založený: 30.05.2006
Príspevky: 1775
Bydlisko: BA - EASTSIDE

PríspevokZaslal: Po 07.01.08 15:35Odpovedať s citátomNávrat hore

Knižnica GD (alebo GD2), http://sk.php.net/manual/sk/ref.image.php

_________________
[quote="A. S. Tanenbaum"]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.[/quote]
Zobraziť informácie o autoroviOdoslať súkromnú správuICQZobraziť autorove WWW stránky
tatysp
Užívateľ
Užívateľ

Založený: 01.09.2007
Príspevky: 141
Bydlisko: 127.0.0.1

PríspevokZaslal: Po 07.01.08 15:44Odpovedať s citátomNávrat hore

a čo tak dať tu presnú funkciu a jej popis ? nie každý vie po ang tak dobre

_________________
It easier to run away
Zobraziť informácie o autoroviOdoslať súkromnú správuICQMSNSkypeYahooAOLZobraziť autorove WWW stránky
suchy
Čestný člen
Čestný člen

Založený: 17.10.2006
Príspevky: 1770

PríspevokZaslal: Po 07.01.08 16:15Odpovedať s citátomNávrat hore

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.
Zobraziť informácie o autoroviOdoslať súkromnú správuICQJabberZobraziť autorove WWW stránky
tatysp
Užívateľ
Užívateľ

Založený: 01.09.2007
Príspevky: 141
Bydlisko: 127.0.0.1

PríspevokZaslal: Po 07.01.08 16:23Odpovedať s citátomNávrat hore

hmm ale mne sa moc nechce prechádzať tým zoznamom

_________________
It easier to run away
Zobraziť informácie o autoroviOdoslať súkromnú správuICQMSNSkypeYahooAOLZobraziť autorove WWW stránky
tatysp
Užívateľ
Užívateľ

Založený: 01.09.2007
Príspevky: 141
Bydlisko: 127.0.0.1

PríspevokZaslal: Po 07.01.08 16:34Odpovedať s citátomNávrat hore

našiel som niečo http://sk.php.net/manual/sk/function.imagecopyresized.php avšak neviem či je to ono - keď hej, tak mam dať príkaz (ktoré parametre sú povinné, ktoré nie, ktoré čo znamenajú ...)

_________________
It easier to run away
Zobraziť informácie o autoroviOdoslať súkromnú správuICQMSNSkypeYahooAOLZobraziť autorove WWW stránky
qacer
Užívateľ
Užívateľ

Založený: 29.12.2005
Príspevky: 540
Bydlisko: 127.0.0.1 (Pov. Bys.)

PríspevokZaslal: Po 07.01.08 17:04Odpovedať s citátomNávrat hore

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."
Zobraziť informácie o autoroviOdoslať súkromnú správuJabberTwitterZobraziť autorove WWW stránky
chiwo
Užívateľ
Užívateľ

Založený: 14.06.2007
Príspevky: 72

PríspevokZaslal: Po 07.01.08 20:07Odpovedať s citátomNávrat hore

qacer napísal:
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
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
bruno.b
Užívateľ
Užívateľ

Založený: 24.02.2007
Príspevky: 146
Bydlisko: Martin

PríspevokZaslal: Po 07.01.08 22:01Odpovedať s citátomNávrat hore

na zmensenie obr. tolko krokov? wow )
Zobraziť informácie o autoroviOdoslať súkromnú správuMSNSkypeZobraziť autorove WWW stránky
qacer
Užívateľ
Užívateľ

Založený: 29.12.2005
Príspevky: 540
Bydlisko: 127.0.0.1 (Pov. Bys.)

PríspevokZaslal: Po 07.01.08 22:58Odpovedať s citátomNávrat hore

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."
Zobraziť informácie o autoroviOdoslať súkromnú správuJabberTwitterZobraziť autorove WWW stránky
neopagan
Užívateľ
Užívateľ

Založený: 07.08.2006
Príspevky: 681

PríspevokZaslal: Ut 08.01.08 13:24Odpovedať s citátomNávrat hore

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 www.metalcovers.ic.cz Hned na uvodnej stranke tie 3 miniatury.
Zobraziť informácie o autoroviOdoslať súkromnú správu
p360t
Skúsený užívateľ
Skúsený užívateľ

Založený: 30.05.2006
Príspevky: 1775
Bydlisko: BA - EASTSIDE

PríspevokZaslal: Ut 08.01.08 14:54Odpovedať s citátomNávrat hore

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)".

_________________
[quote="A. S. Tanenbaum"]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.[/quote]
Zobraziť informácie o autoroviOdoslať súkromnú správuICQZobraziť autorove WWW stránky
mondzo
Užívateľ
Užívateľ

Založený: 09.02.2007
Príspevky: 248

PríspevokZaslal: Ut 08.01.08 15:06Odpovedať s citátomNávrat hore

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...
Zobraziť informácie o autoroviOdoslať súkromnú správuZobraziť autorove WWW stránky
p360t
Skúsený užívateľ
Skúsený užívateľ

Založený: 30.05.2006
Príspevky: 1775
Bydlisko: BA - EASTSIDE

PríspevokZaslal: Ut 08.01.08 15:19Odpovedať s citátomNávrat hore

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ť.

_________________
[quote="A. S. Tanenbaum"]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.[/quote]
Zobraziť informácie o autoroviOdoslať súkromnú správuICQZobraziť autorove WWW stránky
sento
Užívateľ
Užívateľ

Založený: 21.06.2007
Príspevky: 421

PríspevokZaslal: Ut 08.01.08 15:35Odpovedať s citátomNávrat hore

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.
Zobraziť informácie o autoroviOdoslať súkromnú správu
Zobraziť príspevky z predchádzajúcich:    
Zaslať odpoveď
Nemôžete pridávať nové témy do tohto fóra.
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.
Nemôžete hlasovať v tomto fóre.

Powered by phpBB 2.x.x © 2005 - 2012 PCforum, webhosting by WebSupport, edited by JanoF

SEO - optimalizácia pre vyhľadávače

Freebsd