Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何限制上传时的图像宽度或高度_Php_Image Processing_Height_Width - Fatal编程技术网

Php 如何限制上传时的图像宽度或高度

Php 如何限制上传时的图像宽度或高度,php,image-processing,height,width,Php,Image Processing,Height,Width,我想以类似的方式操作/调整图像大小,但我不确定什么是最好的方法。目标是允许肖像和风景图像的混合,但对最大高度和宽度施加一些限制 我看到的问题是,如果我调整到某个宽度,肖像图像可能会变得太薄,而风景图像则相反 关于如何使用PHP实现这些结果,您有什么想法吗?您只需要了解图像的两条边中哪一条更长,然后按比例计算其他维度。如果最大长egde为1024,则如果两条边中的一条较大,则将其设置为1024,然后计算另一条以适合比例。然后将这两个值传递给图像管理函数 就像这里: 或在此: 检查最大尺寸,然后根

我想以类似的方式操作/调整图像大小,但我不确定什么是最好的方法。目标是允许肖像和风景图像的混合,但对最大高度和宽度施加一些限制

我看到的问题是,如果我调整到某个宽度,肖像图像可能会变得太薄,而风景图像则相反


关于如何使用PHP实现这些结果,您有什么想法吗?

您只需要了解图像的两条边中哪一条更长,然后按比例计算其他维度。如果最大长egde为1024,则如果两条边中的一条较大,则将其设置为1024,然后计算另一条以适合比例。然后将这两个值传递给图像管理函数

就像这里:

或在此:

检查最大尺寸,然后根据比率调整大小。下面是一个伪代码示例:

if($imageHeight > $maxHeight) {
    $newHeight = $maxHeight;
    $newWidth = $imageWidth * ($maxHeight / $imageHeight);
}
if($imageWidth > $maxWidth) {
    $newWidth = $maxWidth;
    $newHeight = $imageHeight * ($maxWidth / $imageWidth);
}
resize($image, $newWidth, $newHeight);
它首先检查高度,如果高度更大,它会将其缩小。然后检查宽度。如果宽度太大,它会再次缩小。最终结果,高度和宽度都将在您的范围内。它使用比率进行缩放

注意,这是伪密码。实际的resize函数调用将取决于您的图像处理库——获取图像大小的调用也是如此。

试试这个

       $needheight = 1000;
       $needwidth = 1000;

       $arrtest = getimagesize($upload_image_physical_path);

        $actualwidth = $arrtest[0];
        $actualheight = $arrtest[1];

        if($needwidth > $actualwidth || $needheight > $actualheight){
             //uplaod code  
        }
干杯