PHP
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

read_exif_data> <exif_tagname
Last updated: Fri, 20 Jun 2008

view this page in

exif_thumbnail

(PHP 4 >= 4.2.0, PHP 5)

exif_thumbnail — Récupère la miniature d'une image TIFF ou JPEG

Description

string exif_thumbnail ( string $filename [, int &$width [, int &$height [, int &$imagetype ]]] )

exif_thumbnail() lit la miniature de l'image TIFF ou JPEG dans le fichier filename .

Si vous voulez afficher des miniatures avec cette fonction, vous devez envoyer le bon type MIME avec la fonction header().

Il est possible que la fonction exif_thumbnail() n'arrive pas à créer l'image mais peut déterminer sa taille. Dans ce cas, la fonction retourne FALSE mais les paramètres width et height sont définis.

Liste de paramètres

filename

Le nom du fichier image à lire. Cette image contient une miniature.

width

La largeur retournée de la miniature retournée.

height

La hauteur retournée de la miniature retournée.

imagetype

Le type de l'image retourné de la miniature retournée. Peut être soit TIFF, soit JPEG.

Valeurs de retour

Retourne la miniature embarquée ou FALSE si l'image ne contient pas de miniature.

Historique

Version Description
4.3.0 Les paramètres optionnels width , height et imagetype deviennent disponibles.
4.3.0 Les miniatures peuvent être retournées dans le format TIFF.

Exemples

Exemple #1 Exemple avec exif_thumbnail()

<?php
if (array_key_exists('file'$_REQUEST)) {
    
$image exif_thumbnail($_REQUEST['file'], $width$height$type);
} else {
    
$image false;
}
if (
$image!==false) {
    
header('Content-type: ' .image_type_to_mime_type($type));
    echo 
$image;
    exit;
} else {
    
// aucune miniature de disponible, traitement de l'erreur ici
    
echo 'No thumbnail available';
}
?>



read_exif_data> <exif_tagname
Last updated: Fri, 20 Jun 2008
 
add a note add a note User Contributed Notes
exif_thumbnail
Miguel Vitorino
08-Oct-2007 06:37
use this if you want to embed a thumbnail directly on the HTML page without writing it first to a file:

<?php
$image
= exif_thumbnail($file, $width, $height, $type);

echo
"<img  width='$width' height='$height' src='data:image/gif;base64,".base64_encode($image)."'>";
?>
05-Jan-2007 06:23
If you want to convert from TIFF to JPG you can use ImageMagick if it is installed in your server.

<?php
$exec
= 'convert /path/to/file.tiff /path/to/file.jpg 2>&1';
@
exec($exec, $exec_output, $exec_retval);

//possible error
print_r($exec_output)
?>
hanspeter dot debets at dendrite dot com
14-Jan-2005 06:35
Great that the thumbnail can be in TIFF format (f.i. Kodak cameras have embedded thumbnail in TIFF) BUT I have not been able to show TIFF as an embedded image in HTML (using the <IMG...> tag). There seems to be no function in PHP to change TIFF to, lets say, JPG. (imagecreatefromstring gives a 'unknown datatype' error for the TIFF stream. So below sample works great for JPEG embedded thumbnail, but not for TIFF embedded (but then, maybe I did something wrong?):

test_exif.php:

<HTML>
<HEAD>
    <TITLE>Test EXIF Read  </TITLE>
</HEAD>
<BODY>
<?php
$image
='P0000614.JPG';
echo(
"<B>". $image. "</B>:<BR><BR>\n");

$exif = exif_read_data($image, 'ANY_TAG',true);
if (!
$exif===false)
{
    echo(
"Image contains headers<br><br>");
    echo(
"<A href=showthumb.php?image=" . $image ."> <IMG border=0 src=showthumb.php?image=" . $image ."></A><BR><BR>");

    foreach (
$exif as $key => $section)
    {
        foreach (
$section as $name => $val)
        {
            echo
"$key.$name: $val<br>\n";
        }
    }
}
else
{
    echo(
"Sorry, image <B>".$image . "</B> does not contain (readable) EXIF data.");
}
?>
</BODY>
</HTML>

showthumb.php:

<?php
$imgdat
= exif_thumbnail($_REQUEST['image'],$width, $height, $type);
header('Content-type: ' . image_type_to_mime_type($type));
echo(
$imgdat);
?>

When clicking on the <A> opens the TIFF image in the program that windows assigned to this type, but the JPEG opens in the browser.

I am using PHP 4.3.6 on windows iis 4 (yeah, I know.....)
Eric
13-Jun-2004 07:05
This will allow you to manipulate the thumbnail image ($imgJpeg) using the various gd commands:

<?php
 
if (($imgJpeg = exif_thumbnail($strImagePath)) === false)
    print
"No Thumbnail!";
  else
   
$imgJpeg = imageCreateFromString($imgJpeg);
?>
neothermic at ya[]o dot com ADD ho IN GAP
26-May-2004 10:01
You can use the EXIF thumbnail function to extract the thumnails for use in an image gallery. I've found this to be faster than using other GD functions to convert the image to a smaller one then save it.

Here is the code I use to generate thumbnails. Remember, this is more of a utility script, although its simple to modifiy it for use...

<?PHP
set_time_limit
(0); //use this to make sure the script doesn't time out on large number of images.
//error_reporting(E_NONE); //use this to disable errors in a production script

function getmicrotime() {
   
$temparray=split(" ",microtime());
   
$returntime=$temparray[0]+$temparray[1];
    return
$returntime;
}

//lets make it slightly proper HTML. not valid, but can be changed quickly to be
echo "<html>
<head><title>Processing...</title></head>
<body>"
;

$maindir = "." ; //change this to what ever directory needs scanning
$mydir = opendir($maindir) ;
$starttime=getmicrotime();
$i = 0; //set the count of images processed to 0
while($fn = readdir($mydir)) //scan through the whole directory
   
{//open while

       
$startimagetime = getmicrotime();
       
$ext = strtolower(substr($fn,strlen($fn)-3)); //get the extension of an image
       
if ($ext == "jpg") {
           
$i++; //increase the number of images processed
           
echo $fn ." is being processed....<br>";
           
flush(); //needed to display each image progress
           

           
$image = exif_thumbnail($fn, $width, $height, $type);

            if (
$image!==false) {
                   
//if there is a good enough thumbnail to use, we have it here.
                    //extract it and put it in the file, call it [original image name].thumb.jpg
                
$handle = fopen ($fn.".thumb.jpg", 'a');
                
//write the thumbnail image
                
fwrite($handle, $image);
            } else {
                
// no thumbnail available, handle the error here
                
echo "No thumbnail available for file ".$fn."<br>";
            }
        }
}
closedir($mydir);
$endtime=getmicrotime();

echo
"<br>All Images have been processed, script is finshed.<br>Total processing time: ";
print
$endtime-$starttime;
echo
"<br> Images processed: " .$i;
echo
"</body>";
echo
"</html>"

?>

Its a bit crude, I must admit, but it can easily be adapted to suit user.

NeoThermic

read_exif_data> <exif_tagname
Last updated: Fri, 20 Jun 2008
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites