首页 > 编程知识 正文

php移除图片exif信息(图片删除exif信息)

时间:2023-12-17 21:42:39 阅读:316675 作者:CHSV

本文目录一览:

php图片缩放,对于包含exif信息的数码图片怎么处理?

缩放属于php压缩成新图片,当然就去掉exif头信息;

php获取exif使用 exif_read_data

php 怎么修改图片exif信息?或者有没有其他的程序可以修改的?

通过: 来修改。

教程看:这里

懒得打开的话就看这里

?php

$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],

      /*

      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  .=  "TABLE";

 

foreach($exif as $name=$val) {

  $innerhtml  .=  "TRTD{$name}/TDTD{$val}/TD/TR";

}

 

$innerhtml  .=  "TRTD 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手册:

?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 headersbr /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: $valbr /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 '无法赶走'; 

?

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。