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

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 17:00   1087   0

*

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

*返回: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 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP