gpt4 book ai didi

zend-framework2 - 图像调整大小 zf2

转载 作者:行者123 更新时间:2023-12-04 07:12:39 25 4
gpt4 key购买 nike

我需要在 zend 框架 2 中实现图像大小调整功能(最好使用 gd2 库扩展)。

我找不到任何相同的组件/助手。有引用吗?

如果我想创建一个,我应该在哪里添加它。在旧的 Zend 框架中,有一个 Action Helper 的概念,那么 Zend 框架 2 呢?

请在此处提出最佳解决方案。

最佳答案

我目前使用 Imagine连同Zend Framework 2来处理这个。

  • 安装想象:php composer.phar require imagine/Imagine:0.3.*
  • Imagine 创建服务工厂服务(在 YourModule::getServiceConfig 中):
    return array(
    'invokables' => array(
    // defining it as invokable here, any factory will do too
    'my_image_service' => 'Imagine\Gd\Imagine',
    ),
    );
  • 在你的逻辑中使用它(这里是一个带有 Controller 的小例子):
    public function imageAction()
    {
    $file = $this->params('file'); // @todo: apply STRICT validation!
    $width = $this->params('width', 30); // @todo: apply validation!
    $height = $this->params('height', 30); // @todo: apply validation!
    $imagine = $this->getServiceLocator()->get('my_image_service');
    $image = $imagine->open($file);

    $transformation = new \Imagine\Filter\Transformation();

    $transformation->thumbnail(new \Imagine\Image\Box($width, $height));
    $transformation->apply($image);

    $response = $this->getResponse();
    $response->setContent($image->get('png'));
    $response
    ->getHeaders()
    ->addHeaderLine('Content-Transfer-Encoding', 'binary')
    ->addHeaderLine('Content-Type', 'image/png')
    ->addHeaderLine('Content-Length', mb_strlen($imageContent));

    return $response;
    }

  • 这显然是“快速而肮脏”的方式,因为您应该执行以下操作(可选但可重用性的良好实践):
  • 可能处理服务中的图像转换
  • 从服务中检索图像
  • 使用输入过滤器来验证文件和参数
  • 缓存输出(最终见 http://zend-framework-community.634137.n4.nabble.com/How-to-handle-404-with-action-controller-td4659101.html)

  • 相关: Zend Framework - Returning Image/File using Controller

    关于zend-framework2 - 图像调整大小 zf2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14832891/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com