好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

php照片程序 php图片

很多站长朋友们都不太清楚php照片程序,今天小编就来给大家整理php照片程序,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 PHP如何读取照片的exif信息实现代码 2、 PHP实现上传图片到数据库并显示输出的方法 3、 php中插入图片的代码是什么? 4、 php 如何通过程序对图片进行Byte[] 格式的处理 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  .=  "<TR><TD>{$name}</TD><TD>{$val}</TD></TR>";

}

 

$innerhtml  .=  "<TR><TD 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实现上传图片到数据库并显示输出的方法

本文实例讲述了PHP实现上传图片到数据库并显示输出的方法。分享给大家供大家参考,具体如下:

1.

创建数据表

CREATE

TABLE

ccs_image

(

id

int(4)

unsigned

NOT

NULL

auto_increment,

description

varchar(250)

default

NULL,

bin_data

longblob,

filename

varchar(50)

default

NULL,

filesize

varchar(50)

default

NULL,

filetype

varchar(50)

default

NULL,

PRIMARY

KEY

(id)

)engine=myisam

DEFAULT

charset=utf8

2.

用于上传图片到服务器的页面

upimage.html

<!doctype

html>

<html

lang="en">

<head>

<meta

charset="UTF-8">

<meta

name="viewport"

content="width=device-width,

user-scalable=no,

initial-scale=1.0,

maximum-scale=1.0,

minimum-scale=1.0">

<meta

http-equiv="X-UA-Compatible"

content="ie=edge">

<style

type="text/css">

*{margin:

1%}

</style>

<title>Document</title>

</head>

<body>

<form

method="post"

action="upimage.php"

enctype="multipart/form-data">

描述:

<input

type="text"

name="form_description"

size="40">

<input

type="hidden"

name="MAX_FILE_SIZE"

value="1000000">

<br>

上传文件到数据库:

<input

type="file"

name="form_data"

size="40"><br>

<input

type="submit"

name="submit"

value="submit">

</form>

</body>

</html>

3.

处理图片上传的php

upimage.php

<?php

if

(isset($_POST['submit']))

{

$form_description

=

$_POST['form_description'];

$form_data_name

=

$_FILES['form_data']['name'];

$form_data_size

=

$_FILES['form_data']['size'];

$form_data_type

=

$_FILES['form_data']['type'];

$form_data

=

$_FILES['form_data']['tmp_name'];

$dsn

=

'mysql:dbname=test;host=localhost';

$pdo

=

new

PDO($dsn,

'root',

'root');

$data

=

addslashes(fread(fopen($form_data,

"r"),

filesize($form_data)));

//echo

"mysqlPicture=".$data;

$result

=

$pdo->query("INSERT

INTO

ccs_image

(description,bin_data,filename,filesize,filetype)

VALUES

('$form_description','$data','$form_data_name','$form_data_size','$form_data_type')");

if

($result)

{

echo

"图片已存储到数据库";

}

else

{

echo

"请求失败,请重试";

注:图片是以二进制blob形式存进数据库的,像这样

4.

显示图片的php

getimage.php

<?php

$id

=2;//

$_GET['id'];

为简洁,直接将id写上了,正常应该是通过用户填入的id获取的

$dsn='mysql:dbname=test;host=localhost';

$pdo=new

PDO($dsn,'root','root');

$query

=

"select

bin_data,filetype

from

ccs_image

where

id=2";

$result

=

$pdo->query($query);

$result=$result->fetchAll(2);

//

var_dump($result);

$data

=

$result[0]['bin_data'];

$type

=

$result[0]['filetype'];

Header(

"Content-type:

$type");

echo

$data;

到浏览器查看已经上传的图片,看是否可以显示

是没有问题的,证明图片已经以二进制的形式存储到数据库了

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php+mysql数据库操作入门教程》、《php+mysqli数据库程序设计技巧总结》、《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

您可能感兴趣的文章:php实现上传图片保存到数据库的方法php上传图片存入数据库示例分享php上传图片到指定位置路径保存到数据库的具体实现php中如何将图片储存在数据库里php下将图片以二进制存入mysql数据库中并显示的实现代码php

从数据库提取二进制图片的处理代码php将图片保存入mysql数据库失败的解决方法php将图片文件转换成二进制输出的方法php图片的二进制转换实现方法

php中插入图片的代码是什么?

php中插入图片的代码是什么?

PHP插入图片,实际还是输出HTML代码

比如:

echo '<img src='/data/upload/help/202303/13/a3e22c08cb00cb681eef7010e0570f62.gir' width="100" height="100">';

还可以直接用PHP生成图片显示出来

php的gd库可以生成多种图像文件,如gif,png,jpg,wbmp,xpm等,下面来看一个生成正方形的文件。

<?php

$height = 300;

$width = 300;

//创建背景图

$im = ImageCreateTrueColor($width, $height);

//分配颜色

$white = ImageColorAllocate ($im, 255, 255, 255);

$blue = ImageColorAllocate ($im, 0, 0, 64);

//绘制颜色至图像中

ImageFill($im, 0, 0, $blue);

//绘制字符串:Hello,PHP

ImageString($im, 10, 100, 120, 'Hello,PHP', $white);

//输出图像,定义头

Header ('Content-type: image/png');

//将图像发送至浏览器

ImagePng($im);

//清除资源

ImageDestroy($im);

?>

php 如何通过程序对图片进行Byte[] 格式的处理

其实你为什么非要BYTE格式处理呢,作图之类应该交给PS等软件,不过楼主硬是要一个例子,请看下面代码:

<?

if(!file_exists('test.jpg'))

{

fopen('test.jpg');

}

$fp = fopen('test.jpg', 'w');

fwrite($fp, $byte);

fclose($fp);

header ("Content-type: image/jpg");

echo $byte;

?>

关于php照片程序的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于php照片程序 php图片的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did196121
更新时间:2023-04-26   阅读:19次

上一篇: html怎么写php代码 php文件怎么写html

下一篇:关于apaqi+php的信息

相关资讯

最新资料更新

  • 1.php区xml文件 php处理xml数据
  • 2.phpjavacms的简单介绍
  • 3.php课堂系统 php网课系统
  • 4.php页面加ico php嵌入网页
  • 5.php分页页数太多 在php中如何对多条记录进行分页
  • 6.包含ampquotphp的词条
  • 7.phpwsdl调用 php调用php文件
  • 8.包含苏州软世通php的词条
  • 9.PHP安装宽带办理 php网站安装
  • 10.php提取css文件 php引用css文件
  • 11.手机打开php乱码 php乱码怎么办
  • 12.php视频太大怎么传输 php上传视频压缩
  • 13.主流php框架比较 php框架排行2020
  • 14.php教程全局交流 phpunit教程
  • 15.腾讯php招聘 招聘 腾讯
  • 16.php手机qr php手机编程软件
  • 17.php根据城市定位 php获取位置信息
  • 18.php中套js代码 js中写php代码
  • 19.php加密数据用js解密 php加密 js解密
  • 20.csrfphp防的简单介绍

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]