<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="PHP实现一张图片自动程序动态裁切 等比缩放 满足不同尺寸的显示要求" id="card1">
<p> 游客</p><p>
标题:PHP实现一张图片自动程序动态裁切 等比缩放 满足不同尺寸的显示要求<br/>
正文:<br/>
如果做过那种门户站的朋友,肯定知道,一张图片可能会在不同的地方显示,大小不同,比例也不同,如果只用一张图的话,那么肯定会变形,而且在显示小图的地方,链接 大图,又太浪费了.....用缩略图来处理,也不完美,因为每个地方出现的比例 大小可能都不一样 ,举个例子!请看上图。在这个地方,其实调去出来的是一个列表,但是 图片的大小是不一样的,有多大宽有的窄,,当遇到这样的情况的时候 你们怎么办呢,如果直接用原来的地址,肯定是会变形的,如果搞缩略图也不靠谱,这个调去是自动调去的,你根本不知道哪个图片需要多大的宽高,------------------------------------------------------------------------------------------------------------------下面进入正题:我一直用一种方法,就是PHP 自动裁切...相比你们看到过类似那种图片地址吧 /aaaa/abc_200_100.jpg 或者/aaaa/abc_200*100.jpg我的方式就是在需要图片地方把这个图片地址转化为 类似上面的那种地址, 然后通过apache 的rewrite 定向到一个处理程序.根据宽高生成一个图片然后保存起来,这样做的好处有几个地方:第一,非常灵活,在有图片地方,你需要多宽多高,都可以随意 控制,不会变形,而且程序永远会让图片内容显示的最多第二个,当图片生成过一次的时候,apache下次就不会再重定向到程序了, 因为在规则前面 有 !d !f 这个判断,意思就是当前文件不存在的时候才会定向走,下次图片存在了,就不会再出来了 直接就是真是的图片了不好的地方,就是生成的图片可能会比较多,占用的空间也比较大,但是如果是自己服务器 那就无所谓了,可以归类整理下OK 奉上代码,我们就以discuz为例代码如下: function crop_img($img, $width = 200, $height = 200) { $img_info = parse_url($img); /* 外部链接直接返回图片地址 */ if (!empty($img_info['host']) &amp;amp;&amp;amp; $img_info['host'] != $_SERVER['HTTP_HOST']) { return $img; } el<br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1884&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1884&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1884&amp;Page=2">[2]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1884&amp;Page=3">[3]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1884&amp;Page=6">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=1884">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=1884">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>