首页  >  文章  >  后端开发  >  如何在 PHP 中快速提取图像尺寸:库是最佳解决方案吗?

如何在 PHP 中快速提取图像尺寸:库是最佳解决方案吗?

Barbara Streisand
Barbara Streisand原创
2024-11-02 16:13:29794浏览

How to Extract Image Dimensions in PHP Quickly: Are Libraries the Best Solution?

如何在 PHP 中快速确定图像尺寸:优化指南

在 Web 开发领域,经常需要检索有效地调整远程图像的尺寸。然而,原生 PHP 函数 getimagesize() 对于大型数据集可能非常耗时。

探索替代方法

要加快此过程,建议使用file_get_contents 函数从图像中读取有限数量的字节。在此二进制数据中,可以提取有关图像尺寸的基本信息。

检查二进制数据

检查二进制数据需要特定于格式的技术。例如,JPEG 图像通常包含前 16 个字节内的尺寸,而 PNG 图像需要解析 IHDR 块。

利用库

许多库简化了此操作通过提供预构建函数来从二进制数据读取图像尺寸来进行处理。这些库通常支持多种图像格式,进一步简化了任务。

优化的代码示例

下面是一个代码示例,演示了如何使用 file_get_contents 和库快速获取图像尺寸:

<code class="php">function ranger($url) {
    $headers = array(
        "Range: bytes=0-32768"
    );
    $curl = curl_init($url);
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $data = curl_exec($curl);
    curl_close($curl);
    return $data;
}
$url = "http://news.softpedia.com/images/news2/Debian-Turns-15-2.jpeg";
$raw = ranger($url);
$im = imagecreatefromstring($raw);
// Javascript exif module can be used to extract meta information from image
$exif = $javascriptExif->getAllTags($raw);
$width = $exif['PixelXDimension'];
$height = $exif['PixelYDimension'];
$stop = round(microtime(true) - $start, 5);
echo $width." x ".$height." ({$stop}s)";</code>

基准测试和结果

这种方法已被证明可以显着减少处理时间,特别是对于大型图像集。例如,加载尺寸为 640x480 像素的图像的 32KB 数据大约需要 0.20859 秒。

通过优化检索图像尺寸的过程,Web 开发人员可以提高应用程序的性能和效率。

以上是如何在 PHP 中快速提取图像尺寸:库是最佳解决方案吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn