缩放(适合)图像到PHP上的区域而不拉伸图像

时间:2013-01-14 12:47:39

标签: php image gd

我需要按照区域和图像的最大尺寸大小按比例缩放比例。

我有区域大小:$ Ax $ B

我有图像尺寸:$ ax $ b

我需要按比例缩放而没有裁剪图片(功能($ A,$ B,$ a,$ b))这将返回给我(WidthXHeight)新图像。

看看这个例子:

http://file.qip.ru/photo/Dryu3yhl/two_towers.html

更新:

图像必须按最大图像宽度/高度调整大小(但不超出范围父容器AxB大小)。

该规模算法使用的是简单的Windows图片浏览器。

如果imagesize< containerize比imagesize =原生图像大小。 if imagesize>按宽度容器化按宽度缩放, if imagesize>按宽度容器化,按高度缩放,但不超出范围的自有容器。

非常感谢您的回答!

1 个答案:

答案 0 :(得分:0)

你的意思是这样的:

function new_size($area_width, $area_height, $pic_width, $pic_height) {
    if ($pic_width <= $area_width && $pic_height <= $area_height) return Array('w'=>$pic_width, 'h'=>$pic_height);
    if ($pic_width <= $area_width && $pic_height > $area_height) return Array('w'=>$pic_width*($area_height/$pic_height), 'h'=>$area_height);
    if ($pic_width > $area_width && $pic_height <= $area_height) return Array('w'=>$area_width, 'h'=>$pic_height*($area_width/$pic_width));

    if ($pic_width == $pic_height) {
        if ($area_width > $area_height) return Array('w'=>$pic_width*($area_height/$pic_height), 'h'=>$area_height);
        if ($area_width <= $area_height) return Array('w'=>$area_width, 'h'=>$pic_height*($area_width/$pic_width));
    }


}