Pokud PHP obsahuje příslušné knihovny, můžeme velmi pohodlně generovat náhledy obrázků.
Zjistí rozměry obrázku.
list($width, $height, $type, $attr) = @getimagesize($adr.$file);
Zjistí typ obrázku.
| hodnota | Konstanta |
|---|---|
| 1 | IMAGETYPE_GIF |
| 2 | IMAGETYPE_JPEG |
| 3 | IMAGETYPE_PNG |
| 4 | IMAGETYPE_SWF |
| 5 | IMAGETYPE_PSD |
| 6 | IMAGETYPE_BMP |
| 7 | IMAGETYPE_TIFF_II (intel byte order) |
| 8 | IMAGETYPE_TIFF_MM (motorola byte order) |
| 9 | IMAGETYPE_JPC |
| 10 | IMAGETYPE_JP2 |
| 11 | IMAGETYPE_JPX |
| 12 | IMAGETYPE_JB2 |
| 13 | IMAGETYPE_SWC |
| 14 | IMAGETYPE_IFF |
| 15 | IMAGETYPE_WBMP |
| 16 | IMAGETYPE_XBM |
if (exif_imagetype('image.gif') != IMAGETYPE_GIF) {
echo 'Obrázek není gif.';
}
Vytvoří zmenšeninu obrázku typu .tiff nebo .jpg.
Tato funkce vyžaduje správný formát exif informací v obrázku. Obvykle postačuje obrázek otevřít např. ve photoshopu a znovu uložit. Více zde
exif_thumbnail("adresa k obrázku", "šířka zmenšeniny", "výška zmenšeniny", "typ obrázku");
$ext = strtolower(substr($fn,strlen($fn)-3))//načtení přípony obrázku
$image = exif_thumbnail($fn, $width, $height, $type);//generování náhledu
if ($image!==false) {
//generování se nezdařilo
$handle = fopen ($fn.".thumb.jpg", 'a');//vytvoříme nový soubor
//write the thumbnail image
fwrite($handle, $image);//zapíšeme
fclose ($handle);
}
$handle2=opendir($adr);//otevřeme adresář
while (false!=($file = readdir($handle2)))
{
if (($file!=".") && ($file!="..") )
{
list($width, $height, $type, $attr) = @getimagesize($adr.$file);
if ($width>100) {
$width=150;
$height=150;
$image = @exif_thumbnail($adr.$file, $width, $height, $type);
$ext = strtolower(substr($adr.$file,strlen($fn)-3))//načtení přípony obrázku
$image = exif_thumbnail($adr.$file, $width, $height, $type);//generování náhledu
if ($image!==false) {
//generování se nezdařilo
$handle = fopen ($fn.".thumb.jpg", 'a');//vytvoříme nový soubor
//write the thumbnail image
fwrite($handle, $image);//zapíšeme
fclose ($handle);
$obr=$fn.".thumb.jpg";//adresa náhledu
}
else $obr=$adr.$file; //nezadařilo se, odkazuji na původní soubor
echo "<a href=\"$adr/$file\"><img src=\"$obr"\"></a>\n";
}
}
list($width, $height, $type, $attr) = getimagesize("./12.jpg");
$width=150;
$height=150;
$image = exif_thumbnail("./12.jpg", $width, $height, $type);
//generovn se nezdailo
$handle = fopen ("thumb.jpg", 'a+');//vytvome nov soubor
//write the thumbnail image
fwrite($handle, $image);//zapeme
fclose ($handle);
//if (!$image) header("Location: 12.jpg");
header("Content-type: ".$type);
echo $image;