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


How to restrict image width or height on upload

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

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

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

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

喜欢这里:http://www.white-hat-web-design.co.uk/blog/resizing-images-with-php/

或者在这里:http://www.9lessons.info/2009/03/upload-and-resize-image-with-php.html

尝试使用此

       $needheight = 1000;
       $needwidth = 1000;
       $arrtest = getimagesize($upload_image_physical_path);
        $actualwidth = $arrtest[0];
        $actualheight = $arrtest[1];
        if($needwidth > $actualwidth || $needheight > $actualheight){
             //uplaod code  
        }

欢呼

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

if($imageHeight > $maxHeight) {
    $newHeight = $maxHeight;
    $newWidth = $imageWidth * ($maxHeight / $imageHeight);
}
if($imageWidth > $maxWidth) {
    $newWidth = $maxWidth;
    $newHeight = $imageHeight * ($maxWidth / $imageWidth);
}
resize($image, $newWidth, $newHeight);

它首先检查高度,如果高度更大,它会按比例缩小。然后检查宽度。如果宽度太大,它会再次缩小。最终结果,高度和宽度都将在您的边界内。它使用比例来进行缩放。

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