照片展示php,PHP整理显示照片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

.=

"

"

;

foreach

(

$exif

as

$name

=>

$val

)

{

$innerhtml

.=

"

{$name}

{$val}

"

;

}

$innerhtml

.=

"

/"

2

/"

>

"

;

if

(

$_GET

[

'

img

'

])

{

$image

=

exif_thumbnail

(

$_GET

[

'

img

'

])

;

}

else

{

$image

=

false

;

}

if

(

$image

!==

false

)

{

$innerhtml

.=

"

p

/"

thumbnail.php?img=

"

.

$_GET

[

'

img

'

]

.

"

/"

>

"

;

}

else

{

// no thumbnail available, handle the error here

$innerhtml

.=

"

No thumbnail available

"

;

}

$innerhtml

.=

"

"

;

?>

图片信息
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值