当前位置:首页 > PHP教程 > php图像处理 > 列表

php中使用gd库实现远程图片下载实例

发布:smiling 来源: PHP粉丝网  添加日期:2021-05-26 16:27:09 浏览: 评论:0 

因为今天想写个远程下载图片的类,提前热身写了个php gd库实现远程图片下载功能,当然curl实现更好,php gd库实现远程图片下载功能主要使用gd库的两个函数ImageCreateFromXXX()用于生成图片函数和ImageXXX函数,XXX表示不同图片的扩展名,所以你要想办法获取远程图片的扩展名了,附上php代码如下:

  1. <?php 
  2. header("Content-type:text/html ; charset=utf-8"); 
  3.    
  4. if (!emptyempty($_POST['submit'])){ 
  5.  $url = $_POST['url']; 
  6.  $pictureName = $_POST['pictureName']; 
  7.  $img = getPicture($url,$pictureName); 
  8.  echo '<pre><img src="'.$img.'"></pre>'; 
  9.  } 
  10. function getPicture($url,$pictureName){ 
  11.  if ($url == "") return false; 
  12.  //获取图片的扩展名 
  13.  $info = getimagesize($url); 
  14.  $mime = $info['mime']; 
  15.  $type = substr(strrchr($mime,'/'), 1); 
  16.  //不同的图片类型选择不同的图片生成和保存函数 
  17.  switch($type){ 
  18.  case 'jpeg': 
  19.   $img_create_func = 'imagecreatefromjpeg'; 
  20.   $img_save_func = 'imagejpeg'; 
  21.   $new_img_ext = 'jpg'; 
  22.   break; 
  23.  case 'png': 
  24.   $img_create_func = 'imagecreatefrompng'; 
  25.   $img_save_func = 'imagepng'; 
  26.   $new_img_ext = 'png'; 
  27.   break; 
  28.  case 'bmp': 
  29.   $img_create_func = 'imagecreatefrombmp'; 
  30.   $img_save_func = 'imagebmp'; 
  31.   $new_img_ext = 'bmp'; 
  32.   break; 
  33.  case 'gif': 
  34.   $img_create_func = 'imagecreatefromgif'; 
  35.   $img_save_func = 'imagegif'; 
  36.   $new_img_ext = 'gif'; 
  37.   break; 
  38.  case 'vnd.wap.wbmp': 
  39.   $img_create_func = 'imagecreatefromwbmp'; 
  40.   $img_save_func = 'imagewbmp'; 
  41.   $new_img_ext = 'bmp'; 
  42.   break; 
  43.  case 'xbm': 
  44.   $img_create_func = 'imagecreatefromxbm'; 
  45.   $img_save_func = 'imagexbm'; 
  46.   $new_img_ext = 'xbm'; 
  47.   break; 
  48.  default: 
  49.   $img_create_func = 'imagecreatefromjpeg'; 
  50.   $img_save_func = 'imagejpeg'; 
  51.   $new_img_ext = 'jpg';    
  52.  } 
  53.  if ($pictureName == ""){ 
  54.  $pictureName = time().".{$new_img_ext}"; 
  55.  }else{ 
  56.  $pictureName = $pictureName.".{$new_img_ext}"; 
  57.  } 
  58.  $src_im = $img_create_func($url); //由url创建新图片 
  59.  $img_save_func($src_im, $pictureName); //输出文件到文件 
  60.  return $pictureName; 
  61. } 
  62.    
  63. ?> 
  64. <form method="POST" action=""> 
  65. 远程url地址:<input type="text" name="url" size=20 /><br /> 
  66. 文件名称:<input type="text" name="pictureName" size=20 /> 
  67. <input type="submit" name="submit" value="下载" /> 
  68. </form>

Tags: gd库 php远程图片下载

分享到: