Archiv pro php

Jak si vyrobit Thumbnail obrázky pomocí PHP

Publikováno ve funkci , PHP do ShortLikeAFox dne 22.července 2008

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.

Jak napsat prohlížeče specifický kód s PHP

Publikováno v PHP od ShortLikeAFox dne 21.července 2008

Takže chcete napsat kód, který se objevuje pouze v některých prohlížečích ... Existuje celá řada důvodů, proč to chcete udělat. Poprvé jsem se osobně potřebné k tomu došlo, když jsem se snažil vložit mp3 na určité stránky. Z nějakého důvodu jsem nemohl napsat kód tak, aby mp3 budou hrát o prohlížečích I test (IE, Firefox, Opera a), a ověřovat současně. Pokud si dobře vzpomínám, bylo to Internet Explorer, který byl příčinou problému. Řešení, které jsem vymyslel bylo využít trochu PHP zjistit, kdy uživatel používá IE, a pak vložit mp3 v non-validní kód, pokud tomu tak bylo.

Toto řešení vedlo k mp3 vždy hraje správně a stránky vždy ověření, protože validátor W3C nikdy označuje se jako IE. To nemusí být nejvíce etické způsob, jak dosáhnout splnění W3C, ale funguje to.

Jindy Vzpomínám si potřebují psát prohlížeč konkrétní kód, když jsem byl problém s IE 6 se nezobrazuje moje. PNG správně. I googled kolem a našel pár řešení problému, ale oba skončili nekazí celkový vrstvy umístění na svých stránkách. Namísto odstraňování potíží, že problém, šel jsem se rychlé řešení a rozhodl se zobrazí. Gifs, kdy uživatel měl IE 6. Pokud uživatel byl jiný prohlížeč, který měla. PNG problémy jsem si, že bylo příliš špatné pro něj.

Jak na to:

Nejprve musíte napsat trochu řádek kódu zjistit, jaký prohlížeč vašeho uživatel. Zde je jak to udělat, že s PHP:

  • 'HTTP_USER_AGENT' ]; $ VisitorsOS = $ _SERVER ['HTTP_USER_AGENT'];

Zde jsou tři příklady toho, co $ visitorsOS může vypadat jako

  • Mozilla/4.0 (compatible; MSIE 6.0, Windows NT 5.1; SV1;. NET CLR 1.0.3705;. NET
  • Opera/9.51 (Windows NT 5.1; U, pl)
  • Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US, rv: 1,9) Gecko/2008052906 Firefox

První má uživatel Internet Explorer 6, druhý Opera 9,51 a třetí Firefox.

Nyní, když víme, že více informací než my opravdu potřebujeme o počítači návštěvníka musíme dát tuto informaci náležitě využít. Řekněme, že chcete psát kód, který se zobrazí pouze v případě, že uživatel se systémem libovolné verze Internet Explorer. V takovém případě byste to:

('MSIE',$visitorsOS)){ if (eregi ('MSIE', $ visitorsOS)) (

Kód, který zobrazí pouze v případě má uživatel IE

)

else (

Kód, který se objeví ve všech ostatních případech

)

I použití eregi, nezáleží na velikosti písmen regulárního výrazu místo ereg, velká a malá písmena regulárního výrazu. Nevzpomínám si, kdybych to z paranoia, nebo jestli jsem skutečně našel případ, kdy Internet Explorer identifikovalo jako MSIE. V obou případech eregi nebude bolet něco tak to je to, co mám použít. Chtít psát kód pro konkrétní verze IE by vyžadoval pouze malá změna. místo ... (eregi ('MSIE' ...) bych použil něco podobného (eregi ('MSIE 6.0' ...), když jsem chtěl kód, který se objevoval jen pro MSIE 6.0.


«Předchozí strana« Předchozí stránka Další položky »