中文方式显示照片EXIF信息,显示图片中所略图 
这东西除了一些php论坛简单显示三两信息,别人的lb5000论坛上看到过显示,asp的也有不过很久没接触看着晕。 
不想重复劳动,搜过google,除了asp没找到其他开源的显示exif的,所以整理出来或许有用。 
没什么技术含量,基本只是汉化和资料整理的工作,以下代码为主要部分,所有文件在压缩包内,可以广泛用于相册和论坛显示图片信息的插件,希望熟悉相关知识的朋友找找bug或者加以优化。 
目前应该缺不少信息,如果单单使用应该足够了。 
—————————————————— 
看到过别人传过来的照片里面有缩略图,photoshop做的,但是不知道怎么加进去,有人知道么 
缩略图可以显示:) 
PHP代码:--------------------------------------------------------------------------------  
/** 
* 获取图象信息的函数 
* 
* 一个全面获取图象信息的函数 
* 
* @access public 
* @param string img 图片路径 
* @return array 
*/ 
function GetImageInfoVal(ImageInfo,val_arr) { 
InfoVal = "未知"; 
foreach(val_arr as name=>val) { 
if (name==ImageInfo) { 
InfoVal = &val; 
break; 
} 
} 
return InfoVal; 
} 
function GetImageInfo(img) { 
imgtype = array("", "GIF", "JPG", "PNG", "SWF", "PSD", "BMP", "TIFF(intel byte order)", "TIFF(motorola byte order)", "JPC", "JP2", "JPX", "JB2", "SWC", "IFF", "WBMP", "XBM"); 
Orientation = array("", "top left side", "top right side", "bottom right side", "bottom left side", "left side top", "right side top", "right side bottom", "left side bottom"); 
ResolutionUnit = array("", "", "英寸", "厘米"); 
YCbCrPositioning = array("", "the center of pixel array", "the datum point"); 
ExposureProgram = array("未定义", "手动", "标准程序", "光圈先决", "快门先决", "景深先决", "运动模式", "肖像模式", "风景模式"); 
MeteringMode_arr = array( 
"0" => "未知", 
"1" => "平均", 
"2" => "中央重点平均测光", 
"3" => "点测", 
"4" => "分区", 
"5" => "评估", 
"6" => "局部", 
"255" => "其他" 
); 
Lightsource_arr = array( 
"0" => "未知", 
"1" => "日光", 
"2" => "荧光灯", 
"3" => "钨丝灯", 
"10" => "闪光灯", 
"17" => "标准灯光A", 
"18" => "标准灯光B", 
"19" => "标准灯光C", 
"20" => "D55", 
"21" => "D65", 
"22" => "D75", 
"255" => "其他" 
); 
Flash_arr = array( 
"0" => "flash did not fire", 
"1" => "flash fired", 
"5" => "flash fired but strobe return light not detected", 
"7" => "flash fired and strobe return light detected", 
); 
exif = exif_read_data (img,"IFD0"); 
if (exif===false) { 
new_img_info = array ("文件信息" => "没有图片EXIF信息"); 
} 
else 
{ 
exif = exif_read_data (img,0,true); 
new_img_info = array ( 
"文件信息" => "-----------------------------", 
"文件名" => exif[FILE][FileName], 
"文件类型" => imgtype[exif[FILE][FileType]], 
"文件格式" => exif[FILE][MimeType], 
"文件大小" => exif[FILE][FileSize], 
"时间戳" => date("Y-m-d H:i:s",exif[FILE][FileDateTime]), 
"图像信息" => "-----------------------------", 
"图片说明" => exif[IFD0][ImageDescription], 
"制造商" => exif[IFD0][Make], 
"型号" => exif[IFD0][Model], 
"方向" => Orientation[exif[IFD0][Orientation]], 
"水平分辨率" => exif[IFD0][XResolution].ResolutionUnit[exif[IFD0][ResolutionUnit]], 
"垂直分辨率" => exif[IFD0][YResolution].ResolutionUnit[exif[IFD0][ResolutionUnit]], 
"创建软件" => exif[IFD0][Software], 
"修改时间" => exif[IFD0][DateTime], 
"作者" => exif[IFD0][Artist], 
"YCbCr位置控制" => YCbCrPositioning[exif[IFD0][YCbCrPositioning]], 
"版权" => exif[IFD0][Copyright], 
"摄影版权" => exif[COMPUTED][Copyright.Photographer], 
"编辑版权" => exif[COMPUTED][Copyright.Editor], 
"拍摄信息" => "-----------------------------", 
"Exif版本" => exif[EXIF][ExifVersion], 
"FlashPix版本" => "Ver. ".number_format(exif[EXIF][FlashPixVersion]/100,2), 
"拍摄时间" => exif[EXIF][DateTimeOriginal], 
"数字化时间" => exif[EXIF][DateTimeDigitized], 
"拍摄分辨率高" => exif[COMPUTED][Height], 
"拍摄分辨率宽" => exif[COMPUTED][Width], 
/* 
The actual aperture value of lens when the image was taken. 
Unit is APEX. 
To convert this value to ordinary F-number(F-stop), 
calculate this value's power of root 2 (=1.4142). 
For example, if the ApertureValue is '5', F-number is pow(1.41425,5) = F5.6. 
*/ 
"光圈" => exif[EXIF][ApertureValue], 
"快门速度" => exif[EXIF][ShutterSpeedValue], 
"快门光圈" => exif[COMPUTED][ApertureFNumber], 
"最大光圈值" => "F".exif[EXIF][MaxApertureValue], 
"曝光时间" => exif[EXIF][ExposureTime], 
"F-Number" => exif[EXIF][FNumber], 
"测光模式" => GetImageInfoVal(exif[EXIF][MeteringMode],MeteringMode_arr), 
"光源" => GetImageInfoVal(exif[EXIF][LightSource], Lightsource_arr), 
"闪光灯" => GetImageInfoVal(exif[EXIF][Flash], Flash_arr), 
"曝光模式" => (exif[EXIF][ExposureMode]==1?"手动":"自动"), 
"白平衡" => (exif[EXIF][WhiteBalance]==1?"手动":"自动"), 
"曝光程序" => ExposureProgram[exif[EXIF][ExposureProgram]], 
/* 
Brightness of taken subject, unit is APEX. To calculate Exposure(Ev) from BrigtnessValue(Bv), you must add SensitivityValue(Sv). 
Ev=Bv+Sv Sv=log((ISOSpeedRating/3.125),2) 
ISO100:Sv=5, ISO200:Sv=6, ISO400:Sv=7, ISO125:Sv=5.32. 
*/ 
"曝光补偿" => exif[EXIF][ExposureBiasValue]."EV", 
"ISO感光度" => exif[EXIF][ISOSpeedRatings], 
"分量配置" => (bin2hex(exif[EXIF][ComponentsConfiguration])=="01020300"?"YCbCr":"RGB"),//'0x04,0x05,0x06,0x00'="RGB" '0x01,0x02,0x03,0x00'="YCbCr" 
"图像压缩率" => exif[EXIF][CompressedBitsPerPixel]."Bits/Pixel", 
"对焦距离" => exif[COMPUTED][FocusDistance]."m", 
"焦距" => exif[EXIF][FocalLength]."mm", 
"等价35mm焦距" => exif[EXIF][FocalLengthIn35mmFilm]."mm", 
/* 
Stores user comment. This tag allows to use two-byte character code or unicode. First 8 bytes describe the character code. 'JIS' is a Japanese character code (known as Kanji). 
'0x41,0x53,0x43,0x49,0x49,0x00,0x00,0x00':ASCII 
'0x4a,0x49,0x53,0x00,0x00,0x00,0x00,0x00':JIS 
'0x55,0x4e,0x49,0x43,0x4f,0x44,0x45,0x00':Unicode 
'0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00':Undefined 
*/ 
"用户注释编码" => exif[COMPUTED][UserCommentEncoding], 
"用户注释" => exif[COMPUTED][UserComment], 
"色彩空间" => (exif[EXIF][ColorSpace]==1?"sRGB":"Uncalibrated"), 
"Exif图像宽度" => exif[EXIF][ExifImageLength], 
"Exif图像高度" => exif[EXIF][ExifImageWidth], 
"文件来源" => (bin2hex(exif[EXIF][FileSource])==0x03?"digital still camera":"unknown"), 
"场景类型" => (bin2hex(exif[EXIF][SceneType])==0x01?"A directly photographed image":"unknown"), 
"缩略图文件格式" => exif[COMPUTED][Thumbnail.FileType], 
"缩略图Mime格式" => exif[COMPUTED][Thumbnail.MimeType] 
); 
} 
return new_img_info; 
} 
innerhtml = ""; 
exif = GetImageInfo(_GET['img']); 
innerhtml .= ""; 
foreach(exif as name=>val) { 
innerhtml .= "{name}{val}"; 
} 
innerhtml .= ""; 
if (_GET['img']) { 
image = exif_thumbnail(_GET['img']); 
} else { 
image = false; 
} 
if (image!==false) { 
innerhtml .= "

"; 
} else { 
// no thumbnail available, handle the error here 
innerhtml .= "No thumbnail available"; 
} 
innerhtml .= ""; 
?>   
图片信息