0

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

我有面积大小:$Ax$B

我有图像大小:$ax$b

我需要不裁剪图片的比例比例(函数($A,$B,$a,$b)),它将返回给我(WidthXHeight)的新图像。

看看这个例子:

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

更新:

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

该比例算法使用简单的 Windows 图片查看器。

如果图像大小 < 容器大小而不是图像大小 = 原生图像大小。如果 imagesize > containerize by width 它按宽度缩放,如果 imagesize > containerize by width 它按高度缩放,但不是超出范围自己的容器。

非常感谢您的回答!

4

1 回答 1

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));
    }


}
于 2013-01-14T14:29:10.893 回答