php获取图片元数据,php获取图片路径

PHP图像处理函数有哪些

php图像处理函数大全

陵川网站制作公司哪家好,找创新互联建站!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设等网站项目制作,到程序开发,运营维护。创新互联建站自2013年起到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联建站

php图片处理代码分享,包括缩放、剪裁、缩放、翻转、旋转、透明、锐化等。需要的朋友可以参考下

一、创建图片资源

imagecreatetruecolor(width,height);

imagecreatefromgif(图片名称);

imagecreatefrompng(图片名称);

imagecreatefromjpeg(图片名称);画出各种图像

imagegif(图片资源,保存路径);

imagepng()

imagejpeg();

二、获取图片属性

imagesx(res//宽度

imagesy(res//高度

getimagesize(文件路径)

返回一个具有四个单元的数组。索引

0 包含图像宽度的像素值,索引 1 包含图像高度的像素值。索引 2 是图像类型的标记:1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 =

PSD,6 = BMP,7 = TIFF(intel byte order),8 = TIFF(motorola byte order),9 = JPC,10

= JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM。这些标记与 PHP 4.3.0 新加的

IMAGETYPE 常量对应。索引 3 是文本字符串,内容为“height="yyy" width="xxx"”,可直接用于 IMG

标记。

销毁图像资源

imagedestroy(图片资源);

三、透明处理

PNG、jpeg透明色都正常,只有gif不正常

imagecolortransparent(resource

image [,int

color])//将某个颜色设置成透明色

imagecolorstotal()

imagecolorforindex();

四、图片的裁剪

imagecopyresized()

imagecopyresampled();

五、加水印(文字、图片)

字符串编码转换string iconv ( string $in_charset ,

string $out_charset , string $str )

六、图片旋转

imagerotate();//制定角度的图片翻转

七、图片的翻转

沿X轴 沿Y轴翻转

八、锐化

imagecolorsforindex()

imagecolorat()

php怎么获得图片里的信息

可以使用getimagesize() 函数。

代码如下:

$arr = getimagesize("book.jpg");

print_r($arr);

输出:

Array ( 

[0] = 134 //宽度

[1] = 170  //高度

[2] = 2    //代表jpg

[3] = width="134" height="170" 

[bits] = 8 

[channels] = 3 

[mime] = image/jpeg 

)

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怎么获取本地图片信息

用glob很方便就可获得。

$img = array('gif','png','jpg');//所有图片的后缀名

$dir = 'data/';//文件夹名称

$pic = array();

foreach($img as $k=$v)

{

$pattern = $dir.'*.'.$v;

$all = glob($pattern);

$pic = array_merge($pic,$all);

}

foreach($pic as $p)

{

//分行分页显示代码

}

如果和图片是同一个文件夹,那要将

$dir = 'data/';//文件夹名称

改成

$dir = './';//文件夹名称

php怎么获取图片的src

$str =  CODE

img width="100" id="ab_0" name="ab_0" height="80" src="images/ab.jpg" /

CODE;

preg_match('/(?=src="images\/)[a-z.]+/i',$str,$arr);

print_r($arr);

php中如何从数据库中读取图片?

?php

//将图片存进数据库再读出,注意存储图片的字段类型必须为blob

$user=’root’;

$password=’root’;

$db=’test’;

$connect=mysql_connect(‘localhost’,$user,$password);

mysql_set_charset(‘utf8′,$connect);

mysql_select_db($db);

$photo = “0x”.bin2hex(file_get_contents(“./test.jpg”));

$sql=”INSERT INTO `test`.`test` (`photo`) VALUES ($photo);”;//$photo不需要用引号,切记

mysql_query($sql);

//$result=mysql_query(“SELECT *

//FROM `test`

//LIMIT 0 , 30〃);

//$img=mysql_fetch_array($result);

//echo $img['photo'];

?


网站栏目:php获取图片元数据,php获取图片路径
文章转载:http://azwzsj.com/article/hccihe.html