php图像处理

php中根据已有图片创建图像时,函数imagecreatefromjpeg()和imagecreatefromgif()都能正常工作,而imagecreatefrompng()显示不出图片。

用getimagesize获取图像信息,获取的数据如下:

Array ( [0] => 1136 [1] => 757 [2] => 2 [3] => width="1136" height="757" [bits] => 8 [channels] => 3 [mime] => image/jpeg )

明显可以看出这个图片的类型是jpeg的,而我在程序里判断的代码如下:

$ext = explode(".",$picname); 
$ext=end($ext); //判断图片类型 www.bcty365.com
switch($ext){ 
    case "png": 
         
        $image=imagecreatefrompng($picname); 
        break; 
    case "jpeg": 
         
        $image=imagecreatefromjpeg($picname); 
        break; 
    case "jpg": 
         
        $image=imagecreatefromjpeg($picname); 
        break; 
    case "gif": 
         
        $image=imagecreatefromgif($picname); 
        break; 


使用$ext = explode(".",$picname);$ext=end($ext)根据图片后缀名判断图片类型明显有弊端

那该如何优化呢?代码如下
 
$ename=getimagesize($picname); 
  $ename=explode('/',$ename['mime']); 
  $ext=$ename[1]; 
  switch($ext){ 
   case "png": 
    
    $image=imagecreatefrompng($picname); 
    break; 
   case "jpeg": 
    
    $image=imagecreatefromjpeg($picname); 
    break; 
   case "jpg": 
    
    $image=imagecreatefromjpeg($picname); 
    break; 
   case "gif": 
    
    $image=imagecreatefromgif($picname); 
    break; 
  } 

这样获取准确的图片类型,然后进行处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值