summaryrefslogtreecommitdiff
path: root/ext/exif/test.txt
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2013-03-14 05:42:27 +0000
committer <>2013-04-03 16:25:08 +0000
commitc4dd7a1a684490673e25aaf4fabec5df138854c4 (patch)
tree4d57c44caae4480efff02b90b9be86f44bf25409 /ext/exif/test.txt
downloadphp2-master.tar.gz
Imported from /home/lorry/working-area/delta_php2/php-5.4.13.tar.bz2.HEADphp-5.4.13master
Diffstat (limited to 'ext/exif/test.txt')
-rw-r--r--ext/exif/test.txt365
1 files changed, 365 insertions, 0 deletions
diff --git a/ext/exif/test.txt b/ext/exif/test.txt
new file mode 100644
index 0000000..1c12b50
--- /dev/null
+++ b/ext/exif/test.txt
@@ -0,0 +1,365 @@
+<?php
+
+/* Test script for PHP module ext/exif
+ *
+ * (c) Marcus Boerger, 2002
+ *
+ * $Id$
+ *
+ * Rename the file to test.php and read the instructions. If the
+ * script cannot be executed or does not generate any output check
+ * you error log. In most cases this would mean you found an error
+ * if the rest of your php environment works fine.
+ *
+ * The original version of module exif has many errors and mostly
+ * fails on executing this script.
+ */
+
+$file = array_key_exists('thumbnail',$_REQUEST) ? $_REQUEST['thumbnail'] : '';
+//$file = '/t/temp/kodak-dc4800.tif';
+//$file = '/t/temp/canon-ixus.jpg';
+//$file = '/t/temp/test2.jpg';
+if ( $file) {
+ $image = exif_thumbnail($file);
+ if ( $image!==false) {
+ @Header("content-type: image/jpeg");
+ echo $image;
+ } else {
+ echo "<html><body><table>\n";
+ echo "Thumbnail could not be extracted.\n";
+ echo "</table></body></html>";
+ }
+ die();
+}
+
+if ( !defined('IMAGETYPE_GIF')) define('IMAGETYPE_GIF',1);
+if ( !defined('IMAGETYPE_JPEG')) define('IMAGETYPE_JPEG',2);
+if ( !defined('IMAGETYPE_TIFF_II')) define('IMAGETYPE_TIFF_II',7);
+if ( !defined('IMAGETYPE_TIFF_MM')) define('IMAGETYPE_TIFF_MM',8);
+
+$possible = array();
+
+/****************************************************************************/
+// message function is used for debugging purpose: just to se what happens
+function message($msg) {
+ error_log($msg,0);
+ echo "$msg\n";
+}
+
+function error_msg() {
+ $ret = '<b style="color:green">O.K.</b>';
+ if (array_key_exists('php_errormsg',$GLOBALS) && strlen($GLOBALS['php_errormsg'])) {
+ $ret = '<b style="color:red">'.$GLOBALS['php_errormsg'].'</b>';
+ $GLOBALS['php_errormsg'] = '';
+ }
+ return $ret;
+}
+
+/****************************************************************************/
+// private to function search_file()
+function _search_file($root,&$possible,$path='') {
+ $sub = array();
+ $cnt = 0;
+ $type= false;
+
+ //error_log("search_file($root,$path)",0);
+ if ($dir = @opendir($root.$path.'/')) {
+ while (($found = @readdir($dir)) !== false) {
+ $type = @filetype($root.$path.'/'.$found);
+ //error_log("search_file($root$path):$type=$found",0);
+ switch( $type) {
+ case 'file':
+ $pos = strrpos($found,'.');
+ if ( function_exists('exif_imagetype')) {
+ $type = exif_imagetype($root.$path.'/'.$found);
+ } else {
+ if ( $pos!==false) {
+ $type = GetImageSize($root.$path.'/'.$found);
+ if ( is_array($type)) {
+ $type = $type[2];
+ } else {
+ $type = false;
+ }
+ } else $type = false;
+ }
+ if ( $type!==false)
+ {
+ $possible[] = array('file'=>$root.$path.'/'.$found, 'type'=>$type);
+ //error_log("search_file($root$path) add:$path/$found",0);
+ if ( ($cnt=count($possible)) % 100 == 0) {
+ error_log("exif test page - counting files: $cnt",0);
+ }
+ }
+ break;
+ case 'dir':
+ if ( $found!='.' && $found!='..') {
+ $sub[count($sub)] = $found;
+ }
+ break;
+ }
+ }
+ @closedir($dir);
+ foreach( $sub as $idx => $found) {
+ _search_file($root,$possible,$path.'/'.$found);
+ }
+ }
+}
+
+/****************************************************************************/
+// function: search_file($file,$ext)
+//
+// Searches for $file in document tree. The path is ignored.
+//
+function search_file() {
+ global $argc, $argv;
+ $possible = array();
+
+ if ( $argc > 1) {
+ $path = $argv[1];
+ } else if ( array_key_exists('SCRIPT_FILENAME',$_SERVER)) {
+ $path = $_SERVER['SCRIPT_FILENAME'];
+ //error_log("SCRIPT_FILENAME($path)",0);
+ } else {
+ $path = $argv[0];
+ //error_log("argv($path)",0);
+ }
+ if ( ($p=strpos($path,'?')) !== false) $path = substr($path,0,$p);
+ if ( ($p=strrpos($path,'/')) /*< strlen($path)-1*/) $path = substr($path,0,$p);
+ error_log("exif test page - counting files in $path");
+ _search_file($path,$possible);
+ error_log("exif test page - counting files: ".count($possible)." done.",0);
+ return $possible;
+}
+
+/****************************************************************************/
+// function: search_file($file,$ext)
+//
+// Searches for $file in document tree. The path is ignored.
+//
+function AddInfo($Name,$Value,$highlight=0) {
+ if (is_array($Value)) $Value = 'Array: ('.join(',',$Value).')';
+ $Value = nl2br($Value);
+ if ( $highlight) {
+ $Name = "<th>$Name</th>";
+ } else {
+ $Name = "<td>$Name</td>";
+ }
+ return "<tr>$Name<td>$Value&nbsp;</td></tr>\n";
+}
+
+$possible = search_file();
+
+$title = "PHP module exif test page";
+
+?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional">
+<html>
+<head>
+<title><?=$title ?></title>
+<style type="text/css">
+body {
+ font-size: 12pt;
+}
+h1 {
+ font-size: 20pt;
+ font-weight:bold;
+}
+h2 {
+ font-size: 16pt;
+ font-weight:bold;
+}
+th {
+ text-align: left;
+}
+ul {
+ margin-bottom: 6pt;
+}
+</style>
+</head>
+<body>
+<h1><?=$title ?></h1>
+<h2>(c) Marcus B&ouml;rger, 2002</h2>
+</p>
+<p>
+Images taken from <a href="http://www.exif.org">www.exif.org</a>,
+<a href="http://marcus-boerger.de">marcus-boerger.de</a>
+all rights reserved by their authors and artists, see exif headers.
+The files can be downloaded <a href="http://marcus-boerger.de/php/ext/exif/test/">here</a>.
+To start the test you simple have to put all images into the same directory as this script.
+The test will work with all files in that directory and all subdirectories. To test private
+images just put them into that directory.
+</p>
+<p>
+Youmay take a look at the test <a href="http://marcus-boerger.de/php/ext/exif/test.txt">source here</a>.
+</p>
+<p>
+This test just prooves that some exif headers can be scanned.
+If all files produce a header in output the module might be o.k.
+</p>
+<p>
+What to look for in detail:
+</p>
+<ul>
+<li>kodak-dc4800-plus-acdsee.jpg
+ <ul>
+ <li>should provide a <b>long</b> comment 'by marcus b&ouml;rger&lt;%04i&gt;'*n</li>
+ <li>this file returns an array but it also produces an errormessage because ACDSee destroys
+ the integrity of IFD directory (size of directory and offsets of entries following any
+ edited entry maybe wrong).
+ </li>
+ </ul>
+</li>
+<li>hp-photosmart.jpg
+ <ul>
+ <li>should provide a <b>two line</b> copyright notice</li>
+ </ul>
+</li>
+<li>olympus-d320l
+ <ul>
+ <li>should provide an <b>APP12</b> infoset</li>
+ </ul>
+</li>
+<li>unknown.jpg
+ <ul>
+ <li>should provide an <b>empty</b> comment, this is a comment section and not an IFD0, EXIF or GPS section</li>
+ </ul>
+</li>
+<li>some images
+ <ul>
+ <li>have empty fields, that is the tag is present but no data is stored</li>
+ </ul>
+</li>
+</ul>
+<h2>function exif_tagname</h2>
+<table border='1' cellspacing='0' cellpadding='3' summary="EXIF headernames">
+<?php
+if (function_exists('exif_tagname')) {
+?>
+<tr><td>ImageWidth</td><td><?=@exif_tagname(0x0100)?></td><td><?=error_msg()?></td></tr>
+<tr><td>JPEGProc</td><td><?=@exif_tagname(0x0200)?></td><td><?=error_msg()?></td></tr>
+<tr><td>SceneType</td><td><?=@exif_tagname(0xA301)?></td><td><?=error_msg()?></td></tr>
+<tr><td>false</td><td><?=@exif_tagname(0x0000)===false?'false':'value'?></td><td><?=error_msg()?></td></tr>
+<?php
+} else {
+ echo "<tr><td>function exif_tagname is not supported</td></tr>\n";
+}
+?>
+</table>
+<br clear="all">
+<h2>function exif_read_data for <?=count($possible)?> images</h2>
+
+<?php
+$check_getimagesize = false;
+$check_exif_thumbnail = true;
+$check_exif_read_data = false;
+$fast_output = false;
+if (function_exists('exif_read_data')) {
+ $num = 0;
+ echo "<table border='1' cellspacing='0' cellpadding='3' summary='function results'>\n";
+ $tab2 = "";//"<table border='1' cellspacing='0' cellpadding='3' summary='EXIF information'>\n";
+ $types = array('','GIF','JPEG','PNG','SWF','PSD','BMP','TIFF_II','TIFF_MM','JPC','JP2','JPX','JB2');
+ foreach($possible as $idx => $file) {
+ $type = $file['type'];
+ $file = $file['file'];
+ if ( !((++$num)%100)) error_log("exif test page - checking files: $num",0);
+ $error = '';
+ $len = 2;
+ $rows = 1
+ + ($check_getimagesize ? 1 : 0)
+ + ($check_exif_thumbnail ? 1 : 0)
+ + ($check_exif_read_data ? 1 : 0);
+ if ( !$fast_output) echo "<tr><td rowspan='$rows' valign='top'>$num</td><th colspan='2'>$file</th></tr>\n";
+ if ($check_getimagesize) {
+ $len++;
+ $size = GetImageSize($file);
+ $error = error_msg();// clear message
+ if ( $size === false) {
+ $error = '<b style="color:red">GetImageSize returned false</b><br>'.$error;
+ $res_getimagesize = $error;
+ } else {
+ $res_getimagesize = '('.join($size,',').')';
+ }
+ if ( !$fast_output) echo AddInfo("GetImageSize",$error,1);
+ }
+ if ( $check_exif_thumbnail) {
+ $len++;
+ if ($type!=IMAGETYPE_JPEG) {// && $type!=IMAGETYPE_TIFF_II && $type!=IMAGETYPE_TIFF_MM) {
+ $error = "<b style='color: green'>filetype not supported: $types[$type]</b>";
+ $res_exif_thumbnail = $error;
+ } else {
+ $t_width = 0;
+ $t_height = 0;
+ $result = exif_thumbnail($file, $t_width, $t_height);
+ $error = error_msg();// clear message
+ if ( $result === false) {
+ $error = '<b style="color:red">exif_thumbnail returned false</b><br>'.$error;
+ if ( $t_width && $t_height) {
+ $error = "<b style='color:green'>$t_width x $t_height</b><br>$error";
+ }
+ $res_exif_thumbnail = $error;
+ } else {
+ $res_exif_thumbnail = $t_width . " x " . $t_height;
+ }
+ }
+ if ( !$fast_output) echo AddInfo("exif_thumbnail",$error,1);
+ }
+ if ($check_exif_read_data) {
+ $len++;
+ if ($type!=IMAGETYPE_JPEG && $type!=IMAGETYPE_TIFF_II && $type!=IMAGETYPE_TIFF_MM) {
+ $res_exif_read_data = "<b style='color: green'>filetype not supported: $types[$type]</b>";
+ if ( !$fast_output) echo AddInfo("exif_read_data",$res_exif_read_data);
+ $res = '';
+ } else {
+ $image = exif_read_data($file,'COMMENT,IFD0,EXIF,APP12',true);
+ $error = error_msg();// clear message
+ if ( !$fast_output) echo AddInfo("exif_read_data",$error,1);
+ $res = '';
+ if ( $image === false) {
+ $res_exif_read_data = "<b style='color:red'>exif_read_data returned false</b><br>$error";
+ } else {
+ $res_exif_read_data = $error;
+ // ah no!$error = error_msg(); // force o.k.
+ foreach($image as $Name => $Value) {
+ if ( $Name!='Thumbnail') {
+ if ( is_array($Value)) {
+ $len++;
+ $res .= AddInfo($Name,'Array('.count($Value).')');
+ foreach( $Value as $idx => $Entry) {
+ if ($idx==='Thumbnail') $Entry = '&lt;data&gt;';
+ $len++;
+ $res .= AddInfo($Name.':'.$idx,$Entry);
+ }
+ } else {
+ $len++;
+ $res .= AddInfo($Name,$Value);
+ }
+ }
+ }
+ }
+ }
+ }
+ $tab2 .= "<tr><td rowspan='$len' valign='top'>$num</td></tr>\n";
+ $tab2 .= "<tr><th colspan='2'>$file</th></tr>\n";
+ if ($check_getimagesize) {
+ $tab2 .= "<tr><th>GetImageSize</th><td>$res_getimagesize</td></tr>\n";
+ }
+ if ($check_exif_thumbnail) {
+ $tab2 .= "<tr><th>exif_thumbnail</th><td>$res_exif_thumbnail</td></tr>\n";
+ }
+ if ($check_exif_read_data) {
+ $tab2 .= "<tr><th>exif_read_data</th><td>$res_exif_read_data</td></tr>\n";
+ $tab2 .= $res;
+ }
+ if ( $fast_output) {
+ echo $tab2;
+ $tab2 = '';
+ }
+ }
+ error_log("exif test page - checking files: ".count($possible)." done.",0);
+ echo $tab2;
+ echo "</table>\n";
+} else {
+ echo "<h1 style='color:red'>function exif_read_data is not supported</h1>\n";
+}
+?>
+</body>
+</html> \ No newline at end of file