php - 想象一下 ZF2 : Ratio Resize

标签 php image zend-framework2 php-imagine

我正在 Zend Framework 2 中使用 Imagine 库:Imagine

我也想做的是制作一些图片作为我的图片页面的缩略图,也使其加载速度更快。 但问题是我不知道如何根据库中的比例调整大小。

有人知道如何按比例调整大小吗? 所以我想说图片宽度是300,它会自动计算高度。

这是我此时的代码:

public function resizeImage($photo , $width, $height)
{
    $sm = $this->getServiceLocator();
    $imagine = $sm->get('image_service');
    $image = $imagine->open('public/img/gallery/album1/thumbnails/klj1.jpg');
    $image->resize(new Box($width, $height));
    $image->save('public/img/gallery/album1/thumbnails/klj1-thumb.jpg');
}

最佳答案

我使用以下计算来计算比率:

$size = $image->getSize();
if ($height < $width)
{
    $divider = $size->getWidth() / $width;
    $calcHeight = $size->getHeight() / $divider;
    $calcWidth = $width;
} else {
    $divider = $size->getHeight() / $height;
    $calcWidth = $size->getWidth() / $divider;
    $calcHeight = $height;
}    
$image->resize(new Box($calcWidth, $calcHeight));

关于php - 想象一下 ZF2 : Ratio Resize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25703532/

相关文章:

php - 如何在 ZF2 中的每个页面上运行一个函数

PHP:唯一标识符

javascript - 图像未正确裁剪或调整大小

windows - 在 Windows 中的 XAMPP 上安装 Zend Framework 2

html - 如何对齐用户个人资料图片和姓名+其他信息

node.js - Node.js 的图像比较库

php - 在 Zend 表单中将 div 放在输入元素的前面

php - 你能用数据库做到这一点吗?

php - 在 PHP Symfony 2.8 中访问 twig 生成的表单字段

javascript - 在 while 循环中嵌入 Optgroup 的选择组