Jak si vyrobit Thumbnail obrázky pomocí PHP
Takže chcete vytvořit náhled z daného image ... PHP je tento úkol snadný. Poprvé jsem psal dole funkci vypořádat s obrázky nahrané uživateli na stránkách mohu pomoci spravovat. Nahrané obrázky na tomto webu mohou být JPEG, PNG, nebo gif, tak jsem musel napsat funkci vypořádat se všemi třemi. Tento kód je původně založen z funkce k dispozici na webcheatsheet.com
Jak na to:
Funkce createThumbs ($ pathToImages, $ jmsoub, $ pathToThumbs, $ thumbwidth)
(
/ / Parse cesta pro rozšíření
$ Info = pathinfo ($ pathToImages. $ Jmsoub);
/ / Pokračovat pouze tehdy, pokud je to obrázek ve formátu JPEG
($info['extension']) == 'jpeg') ) if ((strtolower ($ info ['rozšíření']) == 'jpg') | | (strtolower ($ info ['rozšíření']) == 'jpeg'))
(/ / Načtení obrázku a dostanete velikost obrázku
$ Img = imagecreatefromjpeg ("($ pathToImages) ($ jmsoub)");
$ Width = imagesx ($ img);
$ Height = imagesy ($ img);/ / Výpočet velikosti miniatur
$ New_width = $ thumbwidth;
$ New_height = floor ($ výška * ($ thumbwidth / $ šířka));/ / Vytvoření nového dočasného image
$ Tmp_img = imagecreatetruecolor ($ new_width, $ new_height);/ / Kopírovat a měnit velikost starý obraz do nové image
imagecopyresized ($ tmp_img, $ img, 0, 0, 0, 0, $ new_width, $ new_height, $ šířka, výška $);/ / Uložit do souboru s náhledy
imagejpeg ($ tmp_img, "($ pathToThumbs) ($ jmsoub)");)
if (strtolower ($ info ['rozšíření']) == 'gif')
(/ / Načtení obrázku a dostanete velikost obrázku
$ Img = imagecreatefromgif ("($ pathToImages) ($ jmsoub)");
$ Width = imagesx ($ img);
$ Height = imagesy ($ img);/ / Výpočet velikosti miniatur
$ New_width = $ thumbwidth;
$ New_height = floor ($ výška * ($ thumbwidth / $ šířka));/ / Vytvoření nového dočasného image
$ Tmp_img = imagecreatetruecolor ($ new_width, $ new_height);/ / Kopírovat a měnit velikost starý obraz do nové image
imagecopyresized ($ tmp_img, $ img, 0, 0, 0, 0, $ new_width, $ new_height, $ šířka, výška $);/ / Uložit do souboru s náhledy
imagegif ($ tmp_img, "($ pathToThumbs) ($ jmsoub)");)
if (strtolower ($ info ['rozšíření']) == 'png')
(/ / Načtení obrázku a dostanete velikost obrázku
$ Img = imagecreatefrompng ("($ pathToImages) ($ jmsoub)");
$ Width = imagesx ($ img);
$ Height = imagesy ($ img);/ / Výpočet velikosti miniatur
$ New_width = $ thumbwidth;
$ New_height = floor ($ výška * ($ thumbwidth / $ šířka));/ / Vytvoření nového dočasného image
$ Tmp_img = imagecreatetruecolor ($ new_width, $ new_height);/ / Kopírovat a měnit velikost starý obraz do nové image
imagecopyresized ($ tmp_img, $ img, 0, 0, 0, 0, $ new_width, $ new_height, $ šířka, výška $);/ / Uložit do souboru s náhledy
imagepng ($ tmp_img, "($ pathToThumbs) ($ jmsoub)");)
)
Jak to funguje
Funkce createThumbs bere čtyři argumenty.
- $ PathToImages -> cestu ke složce je soubor obrázku dovnitř Mohlo by to vypadat asi takhle: / home / Obsah / username / html / seznam / obrázky /
- $ Jmsoub -> Název souboru: pic1.gif, johnny.jpg, etc ...
- $ PathToThumbs -> cestu ke složce, kterou chcete na miniaturu se dovnitř nechci, aby se stejnou cestou jako $ pathToImages, protože na miniaturu bude mít stejný název jako původní obrázek.
- $ Thumbwidth -> šířka že chcete náhledy, aby se v pixelech.
Důležité poznamenat, že bych měla udělat je to, že tato funkce nemá nic na svém místě, než je příponu souboru zkontrolovat, aby se ujistil, že jejich obrazové soubory obsahují nic škodlivého. Vzhledem k tomu, soubory createThumbs () pracuje s již přesouvat se předpokládá, že soubory byly řádně kontrolovány.
První věc, kterou createThumbs () dělá, je volání pathinfo () . pathinfo () přestávky části cesty do pole. To je užitečné pro nás, protože potřebujeme příponu souboru správně vytvářet náhledy. Další createThumbs () zkontroluje, zda máme co do činění s JPEG. Je-li původní soubor JPEG createThumbs vytvoří nový image na základě původního obrázku imagecreatefromjpeg () . Dalším krokem je dostat šířku a výšku tohoto obrázku ( imagesx () , imagesy () ). Pomocí $ thumbwidth a poměr původní šířka a výška createThumbs () nastaví nová šířka a výška s náhledy. Pomocí těchto nových poměrů createThumbs () vytváří "prázdný" obraz, který bude stejnou šířku a výšku s náhledy s imagecreatetruecolor () . imagecopyresized () se používá pro změnu velikosti obrázku a uložte jej v "prázdné", právě vytvořili. imagecopyresized () by se mohlo zdát, že trvá mnoho parametrů, ale pokud se podíváte na dokumentaci to opravdu není tak složité. Teď, když s náhledy existuje jako skutečný barevný obraz všech createThumbs musí udělat, je převést soubor do formátu JPEG. Chcete-li to imagejpeg () se nazývá.
To, jak funkce pracuje pro JPEG. Tam jsou minimální rozdíly. PNG a. GIFy.








































