6 ledna, 2022

Vytvořte dynamickou fotogalerii s PHP ve třech krocích

pokud máte digitální fotoaparát, pravděpodobně máte také digitálnífotogalerii nezapomenutelných okamžiků. A pokud máte digitální fotogalerii, jste si téměř jisti, že jste narazili na velmi běžný problém: organizování vašich fotografií tak, aby je bylo možné snadno vyhledávat a indexovat.

možná to nevíte, ale většina digitálních fotoaparátů automaticky vkládá popisná metadata do záhlaví obrázků, které vytvářejí. Tato záhlaví, nazývaná záhlaví Exif (EXchangeable Image File), obsahují informace o značce a modelu fotoaparátu, čase a datu pořízení fotografie, technických specifikacích fotografie (shutterspeed, aperture atd.) a miniatuře obrázku. Kromě toho vám mnoho editorů obrázků umožňuje doplnit tyto automaticky generované headerswith popisným textem – například „Sally‘ s first footballgame „nebo“ Getting drunk in Malta“.

jsem si jistý, že vidíte, kam tím mířím. S trochou představivostia kreativní myšlení, je možné použít záhlaví generované vašímkamera (a pokud máte čas a motivaci, dále doplněné vámi)k automatickému uspořádání a popisu vaší sbírky fotografií. Tento článek vám ukáže, jak pomocí funkcí PHP exif.

Krok 1: Ujistěte se, že vaše sestavení PHP podporuje EXIF

aby bylo možné číst záhlaví EXIF, musí sestavení PHP obsahovat podporu EXIFmodule. Můžete zkontrolovat, zda je tato podpora povolena, vytvořením skriptu PHP obsahujícího kód uvedený v seznamu a.

Výpis A

<?php
phpinfo();
?>

Zobraztevýstup tohoto skriptu ve webovém prohlížeči a přečtěte si seznamrozšíření, abyste zjistili, zda je zahrnut EXIF. Pokud ano, přejděte k dalšímu kroku. Pokud ne, budete muset aktivovat EXIF funkce PHP, buďto zrušit komentování prodlužovacího řádku v php.ini (Windows) nebo zkompilování sestavení PHP s argumentem –enable-exif (UNIX). Více informací o tom, jak to udělat, jek dispozici na webových stránkách PHP.

Krok 2: Přesuňte své fotografie do jednoho adresáře

dále sbírejte všechny své fotografie do jednoho adresáře pod webovým serverem documentroot. To je také vhodný čas přidat své vlastní popisné komentáře ke každémuobraz (i když to není nezbytné). K dispozici je řada dobrých shareware a freewaretools, které vám to pomohou; podívejte se na Exifer pro Windows nebo RoboPhoto.

Krok 3: Napište kód pro čtení záhlaví a komentářů fotografií

posledním krokem je napsat skripty PHP, které extrahují data EXIF z vašich obrázků a automaticky vygenerují webovou stránku s miniaturami, technickými informacemi a odkazy na větší verze každého obrázku. Existují dva scénáře: první, galerie.php, (viz Výpis B) hledá fotografie a extrahuje z nich záhlaví EXIF, zatímco druhá, miniatura.php, (viz Výpis C) je zodpovědný za extrahování miniaturního obrázku z každé fotografie.

Výpis B-Zde je Kód pro galerii.php

<html>
<head></head>
<body>
<table>
<?php
/ / define directory path
$dir=“.“;
/ / iterujte soubory
/ / hledejte JPEG
if (is_dir ($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh))!= = false) {
if (preg_match(„/.jpg/“, $file)) {
/ / read EXIF headers
$exif = exif_read_data($file, 0, true);
echo „<tr>“;
/ / get thumbnail
/ / link to full image
echo “ <td valign=top>< a href= $ dir / $file>< imgsrc=thumbnail.php?file=$file></a><td>“;
echo “ <td valign=top>< velikost písma=-1>“;
// získat název souboru
echo “ soubor: <b>“. $exif . „< / b>< br/>“;
// získejte časové razítko
echo „časové razítko:“. $exif . „<br/>“;
// získejte rozměry obrázku
echo „rozměry:“. $exif . „x“. $exif . „<br/>“;
// získejte značku a model fotoaparátu
echo “ Camera:“. $exif;
echo “ < / font>< / td>“;
echo “ < / tr>“;
}
}
closedir ($dh);
}
}
?>
</tabulka>
</tělo>
</html>

Thisscript používá adresářové funkce PHP k načtení seznamu všech obrázků JPEG v adresáři a poté pomocí funkce exif_read_data () přečte záhlaví EXIF z každého obrázku jako anarray. Každý obrázek je zobrazen jako miniatura pomocí informací poskytnutých miniaturou.php, a eachthumbnail je sám hypertextový odkaz na svůj Nadřazený obrázek. Relevantní informace-imagename, rozměry, časové razítko a model fotoaparátu-se extrahuje z těchto hlavic a zobrazí se s každou miniaturou.

Ifyou used a EXIF editor to add your own comments to the images, you can accessthe appropriate array elements to retrieve and display that information aswell. Podívejte se do pole $exif s print_r ($exif) a zjistěte cestu pole pro vlastní metadata.

Poznámka: různí výrobci fotoaparátů používají záhlaví EXIF různými způsoby. Pokud se zdá, že výstup skriptu výše chybí nějaké informace, měli bystepodívejte se do pole $exif pomocí print_r ($exif), abyste zjistili, jak přesně váš fotoaparát zapisuje data EXIF, a proveďte příslušné úpravy kláves pole ve skriptu výše (ListingB).

Výpis C-a tady je Kód pro miniaturu.php

<?php
/ / define directory path
$dir=“.“;
$image = exif_thumbnail($dir . „/“ . $_GET);
hlavička(„Content-Type: image/jpeg“);
echo $image;
?>

Thisscript je velmi jednoduchý-načte název souboru obrázku z adresy URL a použije funkci exif_thumbnail () k extrakci miniatury z pojmenovaného obrázku. Tato Miniatura je pak odeslána thebrohlížeč, spolu s příslušným záhlaví, pro zobrazení.

umístěte oba tyto skripty do adresáře obsahujícího vaše fotografie a poté použijte svůj webový prohlížeč pro přístup do galerie.Linux. Měli byste vidět miniaturyobrazy v adresáři spolu s popisnými informacemi o každém z nich.Kliknutím na miniaturu se dostanete k většímu nadřazenému obrázku.

obrázek A je příkladem toho, jak může výstup vypadat:


obrázek A

příklad screenshot

Andthere to máte-automaticky generované fotogalerie! Při kopírování newimages do složky se automaticky zobrazí v seznamu galerie.Není to hezké?

Poznámka: Skripty vytvořené v kroku 3 můžeteumístěte do jiného adresáře, než který obsahuje vaše fotografie, pokud nezapomenete aktualizovat $dirvariable v horní části každého skriptu se správnou cestou k photocollection.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.