本文目录一览:
- php图片缩放,对于包含exif信息的数码图片怎么处理?
- php 怎么修改图片exif信息?或者有没有其他的程序可以修改的?
- PHP如何读取照片的exif信息实现代码
- PHP上传图片时,如何exif_read_data获取exif
- 我怎样才能修改图像EXIF数据与PHP
- php删除图片文件代码
php图片缩放,对于包含exif信息的数码图片怎么处理?
缩放属于php压缩成新图片,当然就去掉exif头信息;
php获取exif使用 exif_read_data
php 怎么修改图片exif信息?或者有没有其他的程序可以修改的?
通过: 来修改。 教程看:这里 懒得打开的话就看这里
$image = new Imagick();
$image->newImage(300, 200, "black");
$image->setImageProperty('Exif:Make', 'Imagick');
echo $image->getImageProperty('Exif:Make');
PHP如何读取照片的exif信息实现代码
先来了解什么是图片的Exif信息 Exif是一种图象文件格式,它的数据存储与JPEG格式是完全相同的。 实际上Exif格式就是在JPEG格式头部插入了数码照片的信息,包括拍摄时的光圈、快门、白平衡、ISO、焦距、日期时间等各种和拍摄条件以及相机品牌、型号、色彩编码、拍摄时录制的声音以及全球定位系统(GPS)、缩略图等。简单地说,Exif=JPEG+拍摄参数。 因此,你可以利用任何可以查看JPEG文件的看图软件浏览Exif格式的照片,但并不是所有的图形程序都能处理Exif信息。 具体代码你可以参考下面的
/**
* 获取图象信息的函数
* 一个全面获取图象信息的函数
* @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'],
"光圈" => $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']],
"曝光补偿" => $exif['EXIF']['ExposureBiasValue'] . "EV",
"ISO感光度" => $exif['EXIF']['ISOSpeedRatings'],
"分量配置" => (bin2hex($exif['EXIF']['ComponentsConfiguration']) == "01020300" ? "YCbCr" : "RGB"),
"图像压缩率" => $exif['EXIF']['CompressedBitsPerPixel'] . "Bits/Pixel",
"对焦距离" => $exif['COMPUTED']['FocusDistance'] . "m",
"焦距" => $exif['EXIF']['FocalLength'] . "mm",
"等价35mm焦距" => $exif['EXIF']['FocalLengthIn35mmFilm'] . "mm",
"用户注释编码" => $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 .= "<TABLE>";
foreach ($exif as $name => $val) {
$innerhtml .= "<TR><TD>{$name}</TD><TD>{$val}</TD></TR>";
}
$innerhtml .= "<TR><TD colspan=\"2\"";
if ($_GET['img']) {
$image = exif_thumbnail($_GET['img']);
} else {
$image = false;
}
if ($image !== false) {
$innerhtml .= "<img src=\"thumbnail.php?img=" . $_GET['img'] . "\"";
} else {
// no thumbnail available, handle the error here
$innerhtml .= "No thumbnail available";
}
$innerhtml .= "</TD></TR></TABLE>";
<html>
<head>
<title>图片信息</title>
<meta http-equiv="Content-Type" content="text/html; charset=??????">
</head>
<body>
<script>
<!--
//初始化内容值
parent.followTd<?=$_GET['r_id'];?>.innerHTML='<?=$innerhtml;?>';
//已读取
parent.document.images.followImg<?=$_GET['r_id'];?>.loaded='yes';
-->
</script>
</body>
</html>
PHP上传图片时,如何exif_read_data获取exif
php获取图片的exif信息,php自带一个exif_read_data
函数可以用来读取图片的exif信息,代码来自php手册:
echo "test1.jpg:<br />\n";
$exif = exif_read_data('tests/test1.jpg', 'IFD0');
echo $exif === false ? "No header data found.<br />\n" : "Image contains headers<br />\n";
$exif = exif_read_data('tests/test2.jpg', 0, true);
echo "test2.jpg:<br />\n";
foreach ($exif as $key => $section) {
foreach ($section as $name => $val) {
echo "$key.$name: $val<br />\n";
}
}
输出结果如下:
test1.jpg:
No header data found.
test2.jpg:
FILE.FileName: test2.jpg
FILE.FileDateTime: 1017666176
FILE.FileSize: 1240
FILE.FileType: 2
FILE.SectionsFound: ANY_TAG, IFD0, THUMBNAIL, COMMENT
COMPUTED.html:
COMPUTED.Height: 1
COMPUTED.Width: 1
COMPUTED.IsColor: 1
COMPUTED.ByteOrderMotorola: 1
COMPUTED.UserComment: Exif test image.
COMPUTED.UserCommentEncoding: ASCII
COMPUTED.Copyright: Photo (c) M.Boerger, Edited by M.Boerger.
COMPUTED.Copyright.Photographer: Photo (c) M.Boerger
COMPUTED.Copyright.Editor: Edited by M.Boerger.
IFD0.Copyright: Photo (c) M.Boerger
IFD0.UserComment: ASCII
THUMBNAIL.JPEGInterchangeFormat: 134
THUMBNAIL.JPEGInterchangeFormatLength: 523
COMMENT.0: Comment #1.
COMMENT.1: Comment #2.
COMMENT.2: Comment #3end
THUMBNAIL.JPEGInterchangeFormat: 134
THUMBNAIL.Thumbnail.Height: 1
THUMBNAIL.Thumbnail.Height: 1
我怎样才能修改图像EXIF数据与PHP
你可以参考一下这个方法 Imagick::setImageProperty()
网页链接
需要先安装 ImageMagick
php删除图片文件代码
php删除文件非常简单,用unlink
函数简单操作:
<?php
$file = 'dirlist.php';
$result = @unlink($file);
if ($result == false) {
echo '蚊子赶走了';
} else {
echo '无法赶走';
}
?>