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

时间:2012-02-21 13:55:19

标签: php image-processing height width

我想以与Pinterest类似的方式操纵/调整图像大小,但我不确定处理它的最佳方法是什么。目标是允许混合纵向和横向图像,但对最大高度和宽度施加一些限制。

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

关于如何用PHP实现这些结果的任何想法?

3 个答案:

答案 0 :(得分:1)

您只需要了解图像的两个边缘中的哪一个更长,并按比例计算其他尺寸。如果最大long-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

答案 1 :(得分:1)

试试这个

       $needheight = 1000;
       $needwidth = 1000;

       $arrtest = getimagesize($upload_image_physical_path);

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

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

欢呼声

答案 2 :(得分:0)

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

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

首先检查高度,如果高度较大,则将其缩小。然后它检查宽度。如果宽度太大,则会再次缩小宽度。最终结果,高度和宽度都将在您的范围内。它使用比率进行缩放。

注意,这是假的。实际的调整大小函数调用将取决于您的图像处理库 - 同样适用于获取图像大小的调用。