在 Xampp PHP 8.0.1 中使用 Imagine 时出现错误

Getting error when using Imagine with Xampp PHP 8.0.1

在 Xampp PHP 8.0.1 中使用 Imagine 库时,文件 Imagine/Gd/Imagine.php 中的 open() 函数出现错误。具体来说,代码的第 93 行:

$resource = @imagecreatefromstring($data);

$resource 的返回值是 {GdImage}[0] 并且不是随后引发错误的资源。

如果我直接回到Xampp PHP 7.4.13,一切都很好。

如有任何想法,我们将不胜感激。

刚刚回溯,上次that code was on line 93 (well, 92 according to github) was v1.2.1 released in June 2019。那甚至在 PHP 7.4 发布之前,所以你不应该感到惊讶它不包含 PHP 8 个兼容性修复。

Version 1.2.4 came out in November promising PHP 8 support,发布后其实很及时!

作为需要修复的原因的背景(以及为什么您的代码可能也需要修复),资源已在 PHP 8.0 中被 GdImage objects 取代,作为逐步淘汰资源的长期项目的一部分来自语言。