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

本文目录一览:

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 ‘无法赶走’; 

?

原创文章,作者:简单一点,如若转载,请注明出处:https://www.506064.com/n/128656.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
简单一点简单一点
上一篇 2024-10-03 23:25
下一篇 2024-10-03 23:25

相关推荐

  • PHP和Python哪个好找工作?

    PHP和Python都是非常流行的编程语言,它们被广泛应用于不同领域的开发中。但是,在考虑择业方向的时候,很多人都会有一个问题:PHP和Python哪个好找工作?这篇文章将从多个方…

    编程 2025-04-29
  • 用Python绘制酷炫图片

    在本篇文章中,我们将展示如何使用Python绘制酷炫的图片。 一、安装Python绘图库 在使用Python绘制图片之前,我们需要先安装Python绘图库。Python有很多绘图库…

    编程 2025-04-29
  • 使用axios获取返回图片

    使用axios获取返回图片是Web开发中很常见的需求。本文将介绍如何使用axios获取返回图片,并从多个方面进行详细阐述。 一、安装axios 使用axios获取返回图片前,首先需…

    编程 2025-04-29
  • Python 图片转表格

    本文将详细介绍如何使用Python将图片转为表格。大家平时在处理一些资料的时候难免会遇到图片转表格的需求。比如从PDF文档中提取表格等场景。当然,这个功能也可以通过手动复制、粘贴,…

    编程 2025-04-29
  • PHP怎么接币

    想要在自己的网站或应用中接受比特币等加密货币的支付,就需要对该加密货币拥有一定的了解,并使用对应的API进行开发。本文将从多个方面详细阐述如何使用PHP接受加密货币的支付。 一、环…

    编程 2025-04-29
  • Python缓存图片的处理方式

    本文将从多个方面详细阐述Python缓存图片的处理方式,包括缓存原理、缓存框架、缓存策略、缓存更新和缓存清除等方面。 一、缓存原理 缓存是一种提高应用程序性能的技术,在网络应用中流…

    编程 2025-04-29
  • Java 监控接口返回信息报错信息怎么处理

    本文将从多个方面对 Java 监控接口返回信息报错信息的处理方法进行详细的阐述,其中包括如何捕获异常、如何使用日志输出错误信息、以及如何通过异常处理机制解决报错问题等等。以下是详细…

    编程 2025-04-29
  • Python如何抓取图片数据

    Python是一门强大的编程语言,能够轻松地进行各种数据抓取与处理。抓取图片数据是一个非常常见的需求。在这篇文章中,我们将从多个方面介绍Python如何抓取图片数据。 一、使用ur…

    编程 2025-04-29
  • Python利用Image加图片的方法

    在Python中,利用Image库可以快速处理图片,并加入需要的图片,本文将从多个方面详细阐述这个操作。 一、Image库的安装和基础操作 首先,我们需要在Python中安装Ima…

    编程 2025-04-28
  • Avue中如何按照后端返回的链接显示图片

    Avue是一款基于Vue.js、Element-ui等技术栈的可视化开发框架,能够轻松搭建前端页面。在开发中,我们使用到的图片通常都是存储在后端服务器上的,那么如何使用Avue来展…

    编程 2025-04-28

发表回复

登录后才能评论