【发布时间】:2011-08-22 15:25:05
【问题描述】:
所以我编写了一个单元测试来比较 PHP 中的裁剪图像(使用 imagemagick)。该测试有效,但是在一次比较大量图像时遇到了问题。根据创建图像的时间,每个图像都会收到一个直接嵌入到原始数据中的时间戳。在比较文件之前,我一直在使用正则表达式提取该时间戳,但似乎每隔一段时间,其中一个图像文件将包含额外的原始数据,即使它们完全相同。
举个例子,这是我的一项测试的结果(注意,我将图像的二进制数据作为字符串进行比较):
ImageTest::testAutoCrop
断言两个字符串相等失败。
--- 预期
+++实际
@@@@
?n??m?
-?F soO=f???????^???????w??>
?(???/o????M)???o%tEXt??%tEXt+?F sO=f???????^???????w??>
?(???/o????M)???o%tEXt
如您所见....这两个文件之间的唯一区别是预期图像中包含以下附加字符串:“?%tEXt”。
谁能帮我理解这个随机数据代表什么?这将帮助我弄清楚如何修改我的单元测试,这样这样的问题就不会再发生了。
谢谢,
马尔科姆
PS:如果我需要提供更多信息,请告诉我。
【问题讨论】:
-
什么 imagemagick API?什么图像格式? (Imagemagick 有一个“-strip”选项,但它似乎不适用于 PNG。)
标签: php string imagemagick compare phpunit