2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > PHP写下读取图片自定义信息_exif或者什么的

PHP写下读取图片自定义信息_exif或者什么的

时间:2019-09-26 11:20:14

相关推荐

PHP写下读取图片自定义信息_exif或者什么的

后端开发|php教程

nbsp,Imagick,setImageProperty,file,image

后端开发-php教程

PHP写入读取图片自定义信息_exif或者什么的?

需求描述:

简单会议管理系统源码,ubuntu终端可以粘贴,webdriver+反爬虫,php循环判定,SEO中企lzw

使用PHP对图片文件进行优化处理,但此优化处理只能进行一次,二次进行会对图片造成不可恢复的损坏。期望在图片一次处理之后,在图片文件中写入一个自定义的字符串,什么都行,仅用于判断图片是否经过处理。

k线 as 源码,vscode不识别模块和类,ubuntu 小米air,tomcat x-mht,爬爬虫破解,php快递查询源码,seo快速排名优化秒收录,基于asp的购物网站设计与实现lzw

期待可以使用PHP解决。目前想到JPEG格式的话有 EXIF信息,可以尝试从这个作为突破,在EXIF信息中写入一个自定义的字符串。但GIF,PNG,BMP呢,怎么能解决常用的网络图片格式?

qq秒赞网站源码,ubuntu修改本机名,Java的爬虫包,php getdata,惠州营销seolzw

google到这货

Imagick::setImageProperty

根据文档/manual/zh/imagick.setimageproperty.php

貌似刚好符合要求,但是使用这个函数保存图片,再次读取却为空,不晓得是不是我的用法有问题

$image = new Imagick($file);

$image->setImageProperty(Exif:Make, Imagick);

$image->writeImage($file2);

$image2 = new Imagick($file2);

echo $image->getImageProperty(Exif:Make);

这个是一个思路,但没能实现,真希望是我用法有问题,而不是这个函数不可实现。

又尝试使用 APP13

$size = getimagesize(1.jpg, $info);

var_dump($size);

if(isset($info[APP13]))

{

$iptc = iptcparse($info[APP13]);

var_dump($iptc);

}

但也不行。

难道我一直在走弯路?有什么好的办法吗?要的不多,就是想在不破快图片的基础上在图片数据中写入一个字符串,供下次读取这个字符串。

大大们现身吧,给点指点,解决问题立刻散分。

PHP 图片

分享到:

——解决方案——————–

对于 GD 支持的图片,均可以在图片数据结束后附加自定义数据,而不影响图片的内容

示例代码

$url = http://avatar./0/E/F/1_jaylecn.jpg;

$im = imagecreatefromjpeg($url);

imagepng($im, est.jpg); //产生一个 png 图片文件

$s = abcefg; //待附加的信息

file_put_contents( est.jpg, sprintf(\%sInfo%s, $s, pack( , strlen($s))), FILE_APPEND); //按自定义格式附加在图片文件之后

//回读

$s = file_get_contents( est.jpg);

$t = unpack(A4t/noffs, substr($s, -6)); //取回自定义信息的长度

$v = substr($s, -6 - $t[offs], -6); //取回自定义信息

echo $v;//abcdef

请自行验证图片数据没有被破坏

——解决方案——————–

其实大致有这样一个概念:可以边读取边展示的基本是流式数据,这样的数据,头文件将说明了mimetype和长度(或有结束标志),那么在长度(或结束标志)之后的“额外”数据并不影响主体数据的展示,依此概念,甚至rar、zip等也能做手脚,呵呵

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。