CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  PHP

如何实现任意支持格式的图片的缩放? <<========>> 谁来帮我完成1个图片缩放函数?

楼主stanely(俺是邢她汉子)2004-05-04 18:57:41 在 Web 开发 / PHP 提问

function   ImgResize($Soure,$Targer,$NewWidth,$NewHeight){  
   
  //此函数要求单独缩放长/宽,并不是截取图片的一部分,新的长宽分别是$NewWidth,$NewHeight(像素值,非比例值或其他)。  
   
  //成功返回true,否则false;  
   
  //$Source是想要缩放的图片,$Target是保存成的目标图片。  
  //但是希望这两个参数无论当谁是string类型的时候就当作文件名,否则当作img对象。  
   
  } 问题点数:50、回复次数:7Top

1 楼52juanjuan(Fibona)回复于 2004-05-04 19:03:07 得分 0

这么难呀Top

2 楼fins(胖的没救了)回复于 2004-05-04 19:43:10 得分 0

不知道你研究过   vbb3   的代码没  
  里面的   图片附件   缩略图   就是用的楼主说的技术  
  有时间去看看吧   楼主    
   
  研究VBB3真不错啊   能学到很多东西  
   
  建议楼主也加入   VBB3   的研究开发工作中来吧  
  呵呵Top

3 楼stanely(俺是邢她汉子)回复于 2004-05-05 00:16:29 得分 0

别的先别说,  
   
  用imagecopyresized函数缩小了以后,质量变得十分差,有什么办法么?  
   
  另外,imagecreatefromgd和imagecreatefromgd2怎么在很多机器上都导致死机?(win2000   prof   sp4   +   apache   2+php   4.3.5)Top

4 楼hahawen(变态的大龄青年)回复于 2004-05-05 01:05:17 得分 0

faq里面有Top

5 楼ccterran(iwind)回复于 2004-05-05 01:31:50 得分 20

可以用is_string来判断如何使用图片对象。可以用imagecopyresampled来提高清晰度Top

6 楼uuq(杜牧)回复于 2004-05-05 02:05:59 得分 30

偶在收藏的。看看合合适你  
  <?    
  //测试用。  
  $FILENAME="filename";    
   
  //   生成图片的宽度    
  $RESIZEWIDTH=200;    
   
  //   生成图片的高度    
  $RESIZEHEIGHT=150;    
   
   
  function   ResizeImage($im,$maxwidth,$maxheight,$name){    
  $width   =   imagesx($im);    
  $height   =   imagesy($im);    
  if(($maxwidth   &&   $width   >   $maxwidth)   ||   ($maxheight   &&   $height   >   $maxheight)){    
                  if($maxwidth   &&   $width   >   $maxwidth){    
                          $widthratio   =   $maxwidth/$width;    
                          $RESIZEWIDTH=true;    
                  }    
                  if($maxheight   &&   $height   >   $maxheight){    
                          $heightratio   =   $maxheight/$height;    
                          $RESIZEHEIGHT=true;    
                  }    
                  if($RESIZEWIDTH   &&   $RESIZEHEIGHT)  
                    {    
                          if($widthratio   <   $heightratio)  
                              {    
                                              $ratio   =   $widthratio;    
                              }  
                      else{    
                                $ratio   =   $heightratio;    
                              }    
                  }  
              elseif($RESIZEWIDTH)  
            {    
                    $ratio   =   $widthratio;    
            }elseif($RESIZEHEIGHT)  
            {    
                  $ratio   =   $heightratio;    
              }    
  $newwidth   =   $width   *   $ratio;    
  $newheight   =   $height   *   $ratio;    
  if(function_exists("imagecopyresampled"))  
  {    
  $newim   =   imagecreatetruecolor($newwidth,   $newheight);    
  imagecopyresampled($newim,   $im,   0,   0,   0,   0,   $newwidth,   $newheight,   $width,   $height);    
  }else{    
  $newim   =   imagecreate($newwidth,   $newheight);    
  imagecopyresized($newim,   $im,   0,   0,   0,   0,   $newwidth,   $newheight,   $width,   $height);    
  }    
  ImageJpeg   ($newim,$name   .   ".jpg");    
  ImageDestroy   ($newim);    
  }else{    
  ImageJpeg   ($im,$name   .   ".jpg");    
  //ImageDestroy   ($newim);  
  }    
  }    
   
   
  echo   $_FILES['image']['type']."<br>";  
  echo   $_FILES['image']['size'],"<br>";  
  echo   $_FILES['image']['tmp_name'],"<br>";  
  echo   $_FILES['image']['name']."<br>";  
  if($_FILES['image']['size'])  
  {    
        if($_FILES['image']['type']   ==   "image/pjpeg"){    
        $im   =   imagecreatefromjpeg($_FILES['image']['tmp_name']);    
        }elseif($_FILES['image']['type']   ==   "image/x-png"){    
        $im   =   imagecreatefrompng($_FILES['image']['tmp_name']);    
        }elseif($_FILES['image']['type']   ==   "image/gif"){    
        $im   =   imagecreatefromgif($_FILES['image']['tmp_name']);    
        }    
      if($im)  
    {    
          if(file_exists("$FILENAME.jpg"))  
  {    
                unlink("$FILENAME.jpg");    
          }    
            ResizeImage($im,$RESIZEWIDTH,$RESIZEHEIGHT,$FILENAME);    
            ImageDestroy   ($im);   //删除  
    }  
   
  }    
   
  ?>    
   
  <img   src="<?   echo   $FILENAME.'.jpg?reload='.rand(0,999999);   ?>"><br/><br/>    
  <img   src="<?   echo   $FILENAME.'.jpg?rd='.rand(0,999999);   ?>"><br/><br/>  
  <form   enctype="multipart/form-data"   method="post">    
  <br/>    
  <input   type="file"   name="image"   size="50"   ><p>    
  <input   type="submit"   value="上传图片">    
  </form>      
   
  </body>    
  </html>  
  好晚了,想不到搞一两个页面搞了那么晚。睡觉去......Top

7 楼hbcb(青蛙王子)回复于 2004-05-05 08:58:25 得分 0

关注Top

相关问题

  • Delete函数格式?
  • 调用函数的格式
  • ExtTextOut 函数可以在图片框上输出格式化后的文本,但是为什么不能打印?
  • 求救,本人想写一个图片格式转换的程序,请问会用到什么函数
  • 用windows api的那些函数可以将一张40*60的图片用10*10的格式显示?
  • 在C++中用什么函数可以实现文件夹的遍历?格式如何?有重赏!
  • 怎么判断文本框输入的是有效日期格式,有什么函数实现?
  • 简单问题函数格式!!!!!
  • MYSQL自定义函数的格式
  • 关于格式化数值的函数

关键词

  • im
  • vbb3
  • 图片
  • image
  • 楼主
  • tmp
  • echo
  • filename
  • type

得分解答快速导航

  • 帖主:stanely
  • ccterran
  • uuq

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo