php隐藏远程图片地址,php获取远程图片url生成缩略图的方法

*

*函数:调整图片尺寸或生成缩略图

*返回:True/False

*参数:

* $Image 需要调整的图片(含路径)

* $Dw=450 调整时最大宽度;缩略图时的绝对宽度

* $Dh=450 调整时最大高度;缩略图时的绝对高度

* $Type=1 1,调整尺寸; 2,生成缩略图*/

$phtypes=array(‘img/gif‘, ‘img/jpg‘, ‘img/jpeg‘, ‘img/bmp‘, ‘img/pjpeg‘, ‘img/x-png‘);function compressImg($Image,$Dw,$Dh,$Type){IF(!file_exists($Image)){return false;

}//如果需要生成缩略图,则将原图拷贝一下重新给$Image赋值(生成缩略图操作)

// 当Type==1的时候,将不拷贝原图像文件,而是在原来的图像文件上重新生成缩小后的图像(调整尺寸操作)

IF($Type!=1){copy($Image,str_replace(".","_x.",$Image));$Image=str_replace(".","_x.",$Image);

}//取得文件的类型,根据不同的类型建立不同的对象

$ImgInfo=getimagesize($Image);Switch($ImgInfo[2]){case 1:

$Img [email protected]($Image);break;case 2:

$Img [email protected]($Image);Break;case 3:

$Img [email protected]($Image);break;

}//如果对象没有创建成功,则说明非图片文件

IF(Empty($Img)){//如果是生成缩略图的时候出错,则需要删掉已经复制的文件

IF($Type!=1){unlink($Image);

}return false;

}//如果是执行调整尺寸操作则

IF($Type==1){$w=ImagesX($Img);$h=ImagesY($Img);$width = $w;$height = $h;IF($width>$Dw){$Par=$Dw/$width;$width=$Dw;$height=$height*$Par;IF($height>$Dh){$Par=$Dh/$height;$height=$Dh;$width=$width*$Par;

}

}ElseIF($height>$Dh) {$Par=$Dh/$height;$height=$Dh;$width=$width*$Par;IF($width>$Dw){$Par=$Dw/$width;$width=$Dw;$height=$height*$Par;

}

}Else{$width=$width;$height=$height;

}$nImg =ImageCreateTrueColor($width,$height);//新建一个真彩色画布

ImageCopyReSampled($nImg,$Img,0,0,0,0,$width,$height,$w,$h);//重采样拷贝部分图像并调整大小

ImageJpeg($nImg,$Image);//以JPEG格式将图像输出到浏览器或文件

return true;

}Else {//如果是执行生成缩略图操作则

$w=ImagesX($Img);$h=ImagesY($Img);$width = $w;$height = $h;$nImg =ImageCreateTrueColor($Dw,$Dh);IF($h/$w>$Dh/$Dw){//高比较大

$width=$Dw;$height=$h*$Dw/$w;$IntNH=$height-$Dh;

ImageCopyReSampled($nImg, $Img, 0, -$IntNH/1.8, 0, 0, $Dw, $height, $w, $h);

}Else {//宽比较大

$height=$Dh;$width=$w*$Dh/$h;$IntNW=$width-$Dw;

ImageCopyReSampled($nImg, $Img,-$IntNW/1.8,0,0,0, $width, $Dh, $w, $h);

}

ImageJpeg($nImg,$Image);return true;

}

};/**

*根据url获取服务器上的图片

*$url服务器上图片路径 $filename文件名*/

function GrabImage($url,$filename="") {if($url=="") return false;if($filename=="") {$ext=strrchr($url,".");if($ext!=".gif" && $ext!=".jpg" && $ext!=".png")return false;$filename=date("YmdHis").$ext;

}ob_start();readfile($url);$img = ob_get_contents();ob_end_clean();$size = strlen($img);$fp2=@fopen($filename, "a");fwrite($fp2,$img);fclose($fp2);return $filename;

}?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值