首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PhpPresentation imagecreatefromstring():数据不是可识别的格式- PHP7.2

PhpPresentation imagecreatefromstring():数据不是可识别的格式- PHP7.2
EN

Stack Overflow用户
提问于 2018-08-01 13:40:41
回答 2查看 2.4K关注 0票数 10

我试图使用PhpPresentation来读取一个sample.pptx文件,使用对他们的文档中的读者的简单说明,我得到:

imagecreatefromstring(): Data is not in a recognized format

我已经检查是否安装了PHP7.2-gd和所有其他依赖项。

我的守则:

代码语言:javascript
复制
require_once 'vendor/autoload.php';

use \PhpOffice\PhpPresentation\PhpPresentation;
use \PhpOffice\PhpPresentation\IOFactory;
use \PhpOffice\PhpPresentation\Style\Color;
use \PhpOffice\PhpPresentation\Style\Alignment;

$oReader = IOFactory::createReader('PowerPoint2007');
$data = $oReader->load(__DIR__ . '/sample.pptx');
var_dump($data);

有人能帮我理解这个问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-21 20:23:54

在浏览了PHP源代码之后,为了对"图像从字符串“函数有一些了解,我发现它只处理以下图像格式:

  • JPEG
  • PNG
  • GIF
  • WBM
  • GD2
  • BMP
  • WEBP

PHP通过检查图像签名来识别包含在"imagecreatefromstring“函数的参数中的图像格式,正如这里所解释的。

当检测到未知签名时,将引发“数据不在可识别格式”的警告。

因此,对于您正在经历的错误,唯一合理的解释是,您的PPTX文件包含的图像不是上述格式的之一。

您可以通过将其扩展名从".pptx“更改为".zip”,然后打开它,从而查看PPTX文件中的图像格式。

你应该看到这样的东西:

代码语言:javascript
复制
Archive:  sample.pptx
  Length      Date    Time    Name
---------  ---------- -----   ----
     5207  1980-01-01 00:00   [Content_Types].xml
      ...
     6979  1980-01-01 00:00   ppt/media/image1.jpeg
     6528  1980-01-01 00:00   ppt/media/image2.jpeg
   178037  1980-01-01 00:00   ppt/media/image3.jpeg
   229685  1980-01-01 00:00   ppt/media/image4.jpeg
   164476  1980-01-01 00:00   ppt/media/image5.jpeg
     6802  1980-01-01 00:00   ppt/media/image6.png
    19012  1980-01-01 00:00   ppt/media/image7.png
    32146  1980-01-01 00:00   ppt/media/image8.png
      ...
---------                     -------
   795623                     74 files

如您所见,我的sample.pptx文件包含一些JPEG和PNG格式的图像。

也许您的示例文件包含一些带有矢量格式(WMF或EMF)图像的幻灯片;我不清楚(因为我没有在医生们中找到任何引用)是否支持这些格式。最后,您应该尝试使用其他PPTX文件,以确保问题与特定的问题无关(您可以在“测试/资源/文件”下找到一些)。

我已经为PowerPoint文件搜索了支持的图像格式列表,但是我还没有找到准确的响应。

我发现的唯一相关链接如下:

这意味着在PPTX文件中还存在TIFF或PICT (QuickDraw)格式的图像可能导致正在考虑的错误。

票数 8
EN

Stack Overflow用户

发布于 2018-09-25 22:12:11

再次将pptx保存为PPT 2007格式,打开office或MS Powerpoint.Its格式,issue.You将在2007年打开最新的PPT格式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51634838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档