jukuan/img-to-web

将图像转换为适合网页的格式(或 JPG、PNG)

1.0.1 2023-05-22 21:49 UTC

This package is auto-updated.

Last update: 2024-09-23 00:46:34 UTC


README

imgToWebp 是一个 PHP 库,用于将图像(JPG、PNG、WebP)转换为其他格式(默认为 webp)并在实时中调整大小。它提供了一个现代的替代方案,用于旧的 TimThumb 脚本文件,允许您轻松地在 PHP 应用程序中生成图像的调整大小版本。

特性

  • 将图像转换为 WebP、JPG 或 PNG 格式
  • 实时调整图像大小
  • 使用 GD 库高效处理图像
  • 易于使用并与现有的 PHP 应用程序集成

要求

  • PHP 8.1 或更高版本
  • PHP 的 GD 扩展

安装

您可以通过 composer 安装 imgToWebp 或
简单地克隆或下载存储库,并将文件包含到您的 PHP 应用程序中

用法

检查测试目录。其中有几个示例说明如何使用它。要使用 imgToWebp,只需创建一个新的 imgToWebp 对象,并使用源和目标路径调用 convert() 方法

您可以使用以下 PHP 代码

try {
    $imagePath = (new ImgConvertorService())
        ->setDirs($resizedImgDir, __DIR__)
        ->prepareImagePath();
    (new Response())->doImageOutput($imagePath);
} catch (\Exception $e) {
    // handle an error
}

用于 Laravel 的示例

use Jukuan\ImgToWeb\Service\ImgConvertorService;
use Jukuan\ImgToWeb\Http\Response as ImgToWebResponse;

Route::get('img', function ()
{
    $sourceImgDir = public_path('');
    $resizedImgDir = public_path('resized');

    try {
        $imagePath = (new ImgConvertorService())
            ->setDirs($resizedImgDir, $sourceImgDir)
            ->prepareImagePath();
        (new ImgToWebResponse())->doImageOutput($imagePath);
    } catch (\Exception $e) {
        abort(404);
    }
});

在 URL 中,您可以指定附加选项,例如宽度、高度、输出文件的扩展名:例如:https://example.com/resizer/?img=static/uploads/guy.jpg&w=120

安全注意事项

请注意,imgToWebp 是“按原样”提供的,没有任何保证,允许 PHP 脚本对目录有写入访问可能有点危险。在生产环境中使用 imgToWebp 时请谨慎,并确保您的应用程序有适当的安全措施。

许可协议

imgToWebp 在 MIT 许可协议下发布。有关更多信息,请参阅 LICENSE 文件。

贡献

欢迎为 imgToWebp 贡献!如果您发现错误或有功能请求,请打开问题或提交拉取请求。

鸣谢

imgToWebp 由 [Julian M.] 创建。该脚本灵感来源于 TimThumb 库。

联系

如果您对 imgToWebp 有任何问题或反馈,请联系我们 [i[at]juljan.by]。