【问题标题】:How to know image encoding using PHP [duplicate]如何使用 PHP 了解图像编码 [重复]
【发布时间】:2013-03-17 11:05:38
【问题描述】:

我想知道是否有办法知道图像的编码方式。我的情况是这样的,

我有 2 个“.jpg”文件,分别是“a.jpg”和“b.jpg”。我可以打开这两个图像。但问题是,b.jpg 实际上是“b.png”,我只是将其重命名为“b.jpg”。

问题是,如何知道'b.jpg'实际上是一个使用PHP的PNG图像文件?

谢谢..

【问题讨论】:

  • ops,对不起...我之前没有很好地搜索所以我没有找到它..

标签: php image


【解决方案1】:

参见exif_imagetype()...例如

exif_imagetype('a.jpg') 应该返回 2

exif_imagetype('b.jpg') 应该返回 3

请参阅以下列表以查看哪个值指的是哪种编码:

值常数

1   IMAGETYPE_GIF 
2   IMAGETYPE_JPEG 
3   IMAGETYPE_PNG 
4   IMAGETYPE_SWF 
5   IMAGETYPE_PSD 
6   IMAGETYPE_BMP 
7   IMAGETYPE_TIFF_II (intel byte order) 
8   IMAGETYPE_TIFF_MM (motorola byte order) 
9   IMAGETYPE_JPC 
10  IMAGETYPE_JP2 
11  IMAGETYPE_JPX 
12  IMAGETYPE_JB2 
13  IMAGETYPE_SWC 
14  IMAGETYPE_IFF 
15  IMAGETYPE_WBMP 
16  IMAGETYPE_XBM 
17  IMAGETYPE_ICO

【讨论】:

  • 我坚持了好几天,只是因为当我尝试使用 TCPDF 图像标签 ( ) 生成 PDF 输出时,'b.jpg' 没有出现。但现在已经解决了。谢谢,乔治! ;)
【解决方案2】:

查找文件的 mime 类型。

http://www.php.net/manual/en/function.finfo-file.php

<?php
$finfo = finfo_open(FILEINFO_MIME_TYPE); // return mime type ala mimetype extension
echo finfo_file($finfo, 'b.jpg'); // image/png
finfo_close($finfo);

【讨论】:

  • 嗯.. 为什么我在尝试时得到“致命错误:调用未定义函数”?我在 Windows 上使用 XAMPP 1.8.1。
  • 可能您没有安装或启用 FileInfo 扩展。 php.net/manual/en/fileinfo.installation.php
【解决方案3】:

http://php.net/manual/en/function.exif-imagetype.php

这应该是你要找的。​​p>

PHP.net 上的示例:

<?php
if (exif_imagetype('image.gif') != IMAGETYPE_GIF) {
    echo 'The picture is not a gif';
}
?>

【讨论】:

    猜你喜欢
    • 2015-10-25
    • 1970-01-01
    • 2011-10-05
    • 2015-09-06
    • 2016-08-20
    • 2016-12-16
    • 2018-05-13
    • 2019-12-17
    • 2011-01-31
    相关资源
    最近更新 更多