GD knihovna - 1. lekce
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

GD knihovna - 1. lekceGD knihovna - 1. lekce

 
Hledat
Vybavení pro Laser Game
Spuštěn Filmový magazín
Laser Game Brno
Laser Game Ostrava

GD knihovna - 1. lekce

Google       Google       15. 1. 2008       21 426×

V úvodu jsme si řekli trochu základů o GD knihovně. Nyní se podíváme, jaké jsou způsoby vytvoření obrázku. Můžeme obrázek načíst z již existujícího, případně si vytvořit sami nový.

Reklama
Reklama

Podíváme se na hlavní funkce pro vytvoření obrázku z GIF, JPEG, PNG, WBMP. Jako dodatek k této lekci se vám pokusím popsat i další možnosti vytvoření obrázku. V podstatě zde není pomalu o čem psát, ale je to jeden ze základních kamenů pro práci s obrázky v PHP. Pro vytvoření obrázku nám slouží tyto funkce:

  • Klasické funkce
    • imagecreate()
    • imagecreatetruecolor()
    • imagecreatefromgif()
    • imagecreatefromjpeg()
    • imagecreatefrompng()
    • imagecreatefromwbmp()
  • Speciální funkce
    • imagecreatefromxbm()
    • imagecreatefromxpm()
    • imagecreatefromgd2()
    • imagecreatefromgd2part()
    • imagecreatefromgd()
    • imagecreatefromstring()

A nyní si jednu po druhé projdeme.

Vytvoření nového obrázku

Pro vytvoření prázdného nového obrázku nám slouží dvě funkce – imagecreate() a imagecreatetruecolor(). Funkce imagecreate() by měla fungovat vždy, na rozdíl od imagecreatetruecolor(). Tato funkce je závislá na verzi PHP a GD knihovny, navíc není schopna pracovat s GIF formátem. Obrázek má jako výchozí barvu pozadí černou.

  • POPIS FUNKCE:
    resource imagecreate ( int $sirka, int $vyska)
    • Proměnné:
      vyska → udává výšku obrázku v pixelech
      sirka → udává šířku obrázku v pixelech
    • Návratové hodnoty:
      V případě úspěchu vrací identifikátor, v případě selhání vrací FALSE.
  • POPIS FUNKCE:
    resource imagecreatetruecolor ( int $sirka, int $vyska )
    • Proměnné:
      vyska → udává výšku obrázku v pixelech
      sirka → udává šířku obrázku v pixelech
    • Návratové hodnoty:
      V případě úspěchu vrací identifikátor, v případě selhání vrací FALSE.
    • Poznámka:
      Tato funkce vyžaduje GD 2.0.1 nebo novější (doporučena verze 2.0.28 nebo novější).

Vytvoření obrázku z GIF souboru

Dále je možno vytvořit obrázek z GIF souboru a dále jej upravovat. Ale nesmí to být přímo animace. Pokud takto načtete GIF animaci a potom se ji pokusíte upravit, dojde k tomu, že se vám obrázek rozmaže a vzniknou různé barevné čáry.

  • POPIS FUNKCE:
    resource imagecreatefromgif ( string $soubor )
    • Proměnné:
      soubor → udává cestu souboru
    • Návratové hodnoty:
      V případě úspěchu vrací identifikátor, v případě selhání vrací FALSE.

Vytvoření obrázku z JPEG souboru

Asi jedna z nejpoužívanějších funkcí, vytváří obrázek z JPEG souborů. Tato funkce je velmi dobrá pro fotogalerie, což si ukážeme v některém z pozdějších dílů.

  • POPIS FUNKCE:
    resource imagecreatefromjpeg ( string $soubor )
    • Proměnné:
      soubor → udává cestu souboru
    • Návratové hodnoty:
      V případě úspěchu vrací identifikátor, v případě selhání vrací FALSE.

Vytvoření obrázku z PNG souboru

Zde funkce slouží pro načtení PNG souboru. Dá se velmi dobře použít pro různé ikonky, ovládací prvky a podobné věci.

  • POPIS FUNKCE:
    resource imagecreatefrompng ( string $soubor )
    • Proměnné:
      soubor → udává cestu souboru
    • Návratové hodnoty:
      V případě úspěchu vrací identifikátor, v případě selhání vrací FALSE.

Vytvoření obrázku z WBMP souboru

WBMP formátu je formát užívaný na WAP-u.

  • POPIS FUNKCE:
    resource imagecreatefromwbmp ( string $soubor )
    • Proměnné:
      soubor → udává cestu souboru
    • Návratové hodnoty:
      V případě úspěchu vrací identifikátor, v případě selhání vrací FALSE.

Návratové hodnoty

Většina GD funkcí vrací ukazatel (handler) na daný prvek. V případě, že funkce selže vrací FALSE. Ale i zde nejsou výjimkou funkce, které vrací v případě úspěchu TRUE. Proto doporučuji dát každé provedení funkce do podmínky a testovat tím, zda byla funkce správně provedena. Pokud nebyla, tak skript ukončit.

Zobrazení a uložení

Pro zobrazení, případně uložení obrázku se využívá funkcí imagejpeg(), imagegif(), imagepng(), imagewbmp(). Tyto funkce uloží nebo vytisknou obsah zdrojového objektu. Nejméně vstupních parametrů má GIF. Dále se mohou parametry různě lišit. Kvalita, tento parametr udává procentuální hodnotu kvality komprimace. Čím je toto číslo větší, tím je kvalita vyšší, ale současně rozste i velikost souboru.

  • POPIS FUNKCÍ:
    bool imagejpeg ( resource $obrazek [, string $soubor [, int $kvalita ]] )

    bool imagegif ( resource $obrazek [, string $soubor ] )

    bool imagepng ( resource $obrazek [, string $soubor [, int $kvalita [, int $filtry ]]] )

    bool imagewbmp ( resource $obrazek [, string $soubor [, int $popredi ]] )
    • Proměnné:
      obrazek → udává obrázek
      soubor → udává cestu k souboru, kam má být obrázek uložen
      kvalita (nepovinné) → udává kvalitu uloženého obrázku (JPEG: 0-100; PNG: 0-9)
      filtry (nepovinné) → možnost použití některého z filtrů
      popredi (nepovinné) → možnost volby barvy popředí
    • Návratové hodnoty:
      V případě zdárného provedení vrací TRUE, v případě chyby vrací FALSE.

Jak jsem již naznačil, jsou tyto funkce schopny buď ukládat do souborů, případně rovnou zobrazovat na obrazovku. Chcete-li obrázek uložit, zadejte cestu k souboru, kam jej chcete uložit. Cílový soubor nemusí existovat, ale důležité je oprávnění zápisu do složky. Nebude-li v atributech složky nastaveno, že je do ní možno zapisovat, obrázek se neuloží. V případě, že chcete obrázek pouze zobrazit, musíte před touto funkcí použít header() a určit formát zobrazovaného obrázku.

//nacteni obrazku ze souboru JPEG
if(!$im=imagecreatefromjpeg("priklad.jpg")){
        echo "Chyba při načtení souboru";
        exit;
}

//prime zobrazeni
header("Content-type: image/jpeg"); //deklarovani typu souboru
/*
hlavicky podle typu souboru:
imagejpeg() -> header("Content-type: image/jpeg");
imagegif() -> header("Content-type: image/gif");
imagepng() -> header("Content-type: image/png");
imagewbmp() -> header("Content-type: image/vnd.wap.wbmp");
*/
imagejpeg($im, "", 100); //odeslani $im na vystup s kvalitou 100 %
/*
Obrazek odesleme primo na vystup tim, ze uvedeme pouze zdroj 
a dalsi parametry vynechame, pripadne druhy parametr 
zadame jako prazdny.
*/

//ulozeni do souboru s kvalitou 100 %
imagejpeg($im, "priklad-vysledek.jpg", 100);

Stejně jako drtivá většina funkcí PHP jsou i tyto funkce závislé na verzi PHP, případně GD knihovny. Pro upřesnění zde uvádím souhrn možností:

imagejpeg()
GD 1.8 a novější: podpora JPEG formátu

imagepng()
PHP 5.1.2: přidání parametru kvalita
PHP 5.1.3: přidání parametru filtry

imagewbmp()
GD 1.8 a pozdější: podpora WBMP formátu

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Hlasování bylo ukončeno    
0 hlasů
Google
Autor vystudoval SPŠe ve Frenštátě pod Radhoštěm a to v oboru Automatizace. Po škole začal na plný úvazek pracovat pro firmu Siemens VDO jakožto technik výrobních prostředků. V současné době pracuje jakožto PLC Specialista ve firmě IMI Norgren CZ. Zvládá programování PLC od firem Mitsubishi, Omron a Beckhoff, ale autorovou nejsilnější stránkou jsou PLC SIEMENS. Dále se zajímá o identifikaci kusů ve výrobě, strojové vidění a průmyslovou komunikaci. Jeho zájmem v IT jsou PHP, HTML, CSS, JavaScript, RSS, MySQL, MS MQL, Visual Basic.NET, C# a ASP.NET. Mimo IT se zabývá historickým šermem a ohňovými efekty. Rád poslouchá starší skupiny jako třeba Scorpions, Queen, Def lepard, Kiss, Gun's roses a podobné "klasiky" ;-)
Web    

Nové články

Obrázek ke článku Konference: Moderní informační systémy podporují automatizaci

Konference: Moderní informační systémy podporují automatizaci

Současná situace v šíření onemocnění Covid-19 klade na řadu firem nové nároky a mnohé z nich jsou nyní více než kdy jindy závislé na nejmodernějších informačních technologiích. Proto i v oblasti podnikových informačních systémů vidíme rostoucí důraz na automatizaci nebo na důslednou integraci. Také o těchto trendech se bude mluvit na konferenci Firemní informační systémy, která se koná 24.9.2020 v pražském Kongresovém centru Vavruška na Karlově náměstí.

Reklama
Reklama
Obrázek ke článku Nebezpečí ukrytá v USB: z nuly na škvarek za pět sekund

Nebezpečí ukrytá v USB: z nuly na škvarek za pět sekund

Za cenu šesti dolarů lze celkem bez obtíží koupit nový, líbivě vyhlížející flash disk. Přidaná hodnota, které se vám spolu s ním dostane, už tak moc líbivá není. To, co se před pár sekundami tvářilo jako externí disk, se po připojení k počítači změní v důmyslné elektrické křeslo, které vaše zařízení v onen příslovečný škvarek promění za pár sekund. Cílovou skupinou pro koupi takových zařízení by mohli být záškodníci, kteří by tímto způsobem osnovali pomstu třeba vůči záletnému partnerovi. 

Obrázek ke článku Znalosti, dovednosti i prestižní titul MBA: Jde to i moderně a online

Znalosti, dovednosti i prestižní titul MBA: Jde to i moderně a online

Snad nikdy není špatná příležitost na investici do hodnotného vzdělání. Obzvlášť v případě, že absolvent dovede teoretické poznatky přetavit v praktické dovednosti, využitelné při řešení problémů i v komunikaci. Právě na to se specializuje studijní program MBA Řízení informačních technologií, vyučovaný na Business Institutu.

Obrázek ke článku Coding Bootcamp Praha: Obor IT krize nepoznamenala, žádaní jsou weboví vývojáři

Coding Bootcamp Praha: Obor IT krize nepoznamenala, žádaní jsou weboví vývojáři

Pandemie Covid-19 otřásla trhem práce v základech. Dopady krize pocítilo celkově až 45 % zaměstnanců. Není divu, že čím dál větší jistotu přináší obor IT. Ten zůstal krizí téměř nepoznamenán a při nutnosti začít dělat věci na dálku se ještě více ukázalo, jak moc mnohé firmy kvalitní IT potřebují. Do IT nyní přicházejí začátečníci, kteří v něm vidí lukrativní budoucnost a jistotu, ale i freelanceři a zaměstnanci z oborů zasažených krizí

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032020 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý