如何在保持宽高比的同时将图像调整为固定的宽度和高度?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在保持宽高比的同时将图像调整为固定的宽度和高度?相关的知识,希望对你有一定的参考价值。

我试图批量调整图像大小为250 x 250 php

所有源图像都大于250 x 250,这很有帮助。

我想保持纵横比,但要使它们全部为250 x 250.我知道图像的一部分将被裁剪掉以执行此操作。这对我来说不是问题

问题是我当前的脚本仅适用于宽度并根据方面制作高度,但有时,图像现在最终会被说成250 x166。我不能使用它。

在那个原因它需要以相反的方式(高度到宽度)调整大小

脚本如何在不拉伸的情况下始终将最终图像设置为250 x 250。再说一遍,我不在乎是否有裁剪。我认为在某个地方会有一个别人,但现在这已经过了我的脑海。我更像是一个前端人物。

任何帮助都会很棒。

以下是我的完整脚本的相关部分:

$width = 250;
$height = true;

 // download and create gd image
 $image = ImageCreateFromString(file_get_contents($url));

 // calculate resized ratio
 // Note: if $height is set to TRUE then we automatically calculate the height based on the ratio
 $height = $height === true ? (ImageSY($image) * $width / ImageSX($image)) : $height;

 // create image 
 $output = ImageCreateTrueColor($width, $height);

 ImageCopyResampled($output, $image, 0, 0, 0, 0, $width, $height, ImageSX($image), ImageSY($image));

 // save image
 ImageJPEG($output, $destdir, 100); 
答案
    $newWidth = 250;
    $newHeight = 250;

    // download and create gd image
    $image = ImageCreateFromString(file_get_contents($url));
    $width = ImageSX($image);
    $height = ImageSY($image);

    $coefficient =  $newHeight / $height;

    if (($target_width / $width) > $coefficient) {
        $coefficient = $target_width / $width;
    }

    // create image
    $output = ImageCreateTrueColor($newWidth, $newHeight);

    ImageCopyResampled($output, $image, 0, 0, 0, 0, $width * $coefficient, $height * $coefficient, $width, $height);

   // save image
   ImageJPEG($output, $destdir, 100); 

以上是关于如何在保持宽高比的同时将图像调整为固定的宽度和高度?的主要内容,如果未能解决你的问题,请参考以下文章

如何在AngularJS中显示占位符图像

c# 在保持纵横比的同时将图像调整为不同的大小

在自定义UITableViewCell中保持UIImageView的宽高比

使用VBA在Excel填充单元格中插入多个图像,但保持宽高比

使用Python,OpenCV缩放照片(忽略宽高比,保持宽高比)

16:9 宽高比,固定宽度