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
下一篇 2024-10-03

相关推荐

  • c语言指针p1与p,指针p1p2

    本文目录一览: 1、c语言中指针型变量p1,p2 那*p1=*p2和p1=p2什么区别? 2、c语言中的指针中有一段 *p=*p1,我想问一下 *P有具体的值 也就是说是一个常量,…

    编程 2024-10-04
  • 详解idea中的idea.vmoptions

    在使用IntelliJ IDEA进行开发时,我们常常需要进行一些配置以更好地适应我们自己的开发环境,而其中一个配置文件——idea.vmoptions就显得尤为重要。在本文中,我们…

    编程 2024-10-04
  • php上传图片错误号,php 上传图片

    本文目录一览: 1、PHP上传图片出错,出错信息是:允许8388608字节的存储器的大小(试图分配2048字节),高手怎么解决 2、php上传图片出错的问题? 3、php 的后台在…

    编程 2024-10-04
  • Docker安装Nacos指南

    一、Docker安装Nacos Docker是一个应用程序开发平台,可以使用容器轻松地从Docker Hub上下载和运行软件。在这里,我们将介绍如何使用Docker在本地计算机上安…

    编程 2024-10-04
  • Java运行class指令

    一、Java运行class指令的概述 Java作为一门面向对象的编程语言,对程序员而言最重要的一点是编写出高效、优美的Java代码。 而Java运行class指令,就是指在Java…

    编程 2024-10-03
  • extjs快速开发入门指南的简单介绍

    本文目录一览: 1、ExtJS是什么,一位学长说的,对这个从未听说 2、ext基本语法 3、转:新手如何学习ExtJS 4 4、extjs实用开发指南 ExtJS是什么,一位学长说…

    编程 2024-10-04
  • 如何在iOS中使用信号量提高线程同步效率

    在iOS开发中,线程同步是一项重要的任务,而信号量则是一种非常有效的实现方式。本篇文章将从多个方面详细阐述如何在iOS中使用信号量提高线程同步效率。 一、信号量概述 信号量是一种用…

    编程 2024-10-04
  • 最近python挺火的(python突然火了)

    本文目录一览: 1、为什么Python编程如此火热? 2、python为什么火 3、当下最火的Python有哪些作用? 4、python为什么这么火 5、Python为什么突然火了…

    编程 2024-10-03
  • 用Java编写简单易懂的年龄计算程序

    一、准备工作 首先,在我们开始编写年龄计算程序之前,需要准备好Java开发环境,比如JDK、Eclipse等。对于Java开发环境的安装和配置,这里就不做详细阐述了。 二、程序设计…

    编程 2024-10-04
  • mysql数据库的表转成json格式(mysql结果集转json)

    本文目录一览: 1、如何将MySQ中的数据导出为JSON或CSV格式 2、mysql中的json数据类型 3、如何把数据库的数据存成json文件 4、怎样将jsp中从MySQL数据…

    编程 2024-10-03

发表回复

登录后才能评论