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


Posted in PHP onMay 12, 2015

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

<?php
header("Content-type:text/html ; charset=utf-8");
 
if (!empty($_POST['submit'])){
 $url = $_POST['url'];
 $pictureName = $_POST['pictureName'];
 $img = getPicture($url,$pictureName);
 echo '<pre><img src="'.$img.'"></pre>';
 }
function getPicture($url,$pictureName){
 if ($url == "") return false;
 //获取图片的扩展名
 $info = getimagesize($url);
 $mime = $info['mime'];
 $type = substr(strrchr($mime,'/'), 1);
 //不同的图片类型选择不同的图片生成和保存函数
 switch($type){
 case 'jpeg':
  $img_create_func = 'imagecreatefromjpeg';
  $img_save_func = 'imagejpeg';
  $new_img_ext = 'jpg';
  break;
 case 'png':
  $img_create_func = 'imagecreatefrompng';
  $img_save_func = 'imagepng';
  $new_img_ext = 'png';
  break;
 case 'bmp':
  $img_create_func = 'imagecreatefrombmp';
  $img_save_func = 'imagebmp';
  $new_img_ext = 'bmp';
  break;
 case 'gif':
  $img_create_func = 'imagecreatefromgif';
  $img_save_func = 'imagegif';
  $new_img_ext = 'gif';
  break;
 case 'vnd.wap.wbmp':
  $img_create_func = 'imagecreatefromwbmp';
  $img_save_func = 'imagewbmp';
  $new_img_ext = 'bmp';
  break;
 case 'xbm':
  $img_create_func = 'imagecreatefromxbm';
  $img_save_func = 'imagexbm';
  $new_img_ext = 'xbm';
  break;
 default:
  $img_create_func = 'imagecreatefromjpeg';
  $img_save_func = 'imagejpeg';
  $new_img_ext = 'jpg';   
 }
 if ($pictureName == ""){
 $pictureName = time().".{$new_img_ext}";
 }else{
 $pictureName = $pictureName.".{$new_img_ext}";
 }
 $src_im = $img_create_func($url); //由url创建新图片
 $img_save_func($src_im, $pictureName); //输出文件到文件
 return $pictureName;
}
 
?>
<form method="POST" action="">
远程url地址:<input type="text" name="url" size=20 /><br />
文件名称:<input type="text" name="pictureName" size=20 />
<input type="submit" name="submit" value="下载" />
</form>

运行结果如下图:(图片自动保存在当前文件目录,不明白的可以留言)

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

PHP 相关文章推荐
php强制下载类型的实现代码
Apr 21 PHP
常用的PHP数据库操作方法(MYSQL版)
Jun 08 PHP
PHP学习笔记 用户注册模块用户类以及验证码类
Sep 20 PHP
php函数与传递参数实例分析
Nov 15 PHP
php中smarty模板条件判断用法实例
Jun 11 PHP
PHP判断手机是IOS还是Android
Dec 09 PHP
WordPress中给媒体文件添加分类和标签的PHP功能实现
Dec 31 PHP
Yii2框架BootStrap样式的深入理解
Nov 07 PHP
PHP中md5()函数的用法讲解
Mar 30 PHP
vmware linux系统安装最新的php7图解
Apr 14 PHP
PHP文件上传小程序 适合初学者学习!
May 23 PHP
浅析PHP中的 inet_pton 网络函数
Dec 16 PHP
PHP输入输出流学习笔记
May 12 #PHP
PHP SPL标准库之SplFixedArray使用实例
May 12 #PHP
php中get_defined_constants函数用法实例分析
May 12 #PHP
PHP SPL标准库之数据结构栈(SplStack)介绍
May 12 #PHP
php遍历类中包含的所有元素的方法
May 12 #PHP
PHP 双链表(SplDoublyLinkedList)简介和使用实例
May 12 #PHP
php实现每天自动变换随机问候语的方法
May 12 #PHP
You might like
Syphon 秘笈
2021/03/03 冲泡冲煮
PHP中explode函数和split函数的区别小结
2016/08/24 PHP
phpinfo()中Loaded Configuration File(none)的解决方法
2017/01/16 PHP
PHP实现十进制数字与二十六进制字母串相互转换操作示例
2018/08/10 PHP
使用PHPUnit进行单元测试并生成代码覆盖率报告的方法
2019/03/08 PHP
IE与Firefox在JavaScript上的7个不同写法小结
2009/09/14 Javascript
checkbox设置复选框的只读效果不让用户勾选
2013/08/12 Javascript
jquery indexOf使用方法
2013/08/19 Javascript
jQuery控制TR显示隐藏的三种常用方法
2014/08/21 Javascript
node.js中的path.isAbsolute方法使用说明
2014/12/08 Javascript
JavaScript中的类数组对象介绍
2014/12/30 Javascript
浅析javascript中函数声明和函数表达式的区别
2015/02/15 Javascript
再谈JavaScript线程
2015/07/10 Javascript
JavaScript开发Chrome浏览器扩展程序UI的教程
2016/05/16 Javascript
原生JS 购物车及购物页面的cookie使用方法
2017/08/21 Javascript
利用SpringMVC过滤器解决vue跨域请求的问题
2018/02/10 Javascript
详解node.js 下载图片的 2 种方式
2018/03/02 Javascript
layUI实现列表查询功能
2019/07/27 Javascript
vue中axios的二次封装实例讲解
2019/10/14 Javascript
JS数据类型判断的几种常用方法
2020/07/07 Javascript
原生js实现贪吃蛇游戏
2020/10/26 Javascript
python中的实例方法、静态方法、类方法、类变量和实例变量浅析
2014/04/26 Python
Python使用QRCode模块生成二维码实例详解
2017/06/14 Python
Python 实现选择排序的算法步骤
2018/04/22 Python
python logging日志模块原理及操作解析
2019/10/12 Python
python GUI库图形界面开发之PyQt5窗口布局控件QStackedWidget详细使用方法
2020/02/27 Python
HTML5之SVG 2D入门2—图形绘制(基本形状)介绍及使用
2013/01/30 HTML / CSS
澳大利亚最大的女装零售商:Millers
2017/09/10 全球购物
退休教师欢送会主持词
2014/03/31 职场文书
关于祖国的演讲稿
2014/05/04 职场文书
质量承诺书格式
2014/05/20 职场文书
处级领导干部四风问题自我剖析材料
2014/09/29 职场文书
拾金不昧感谢信
2015/01/21 职场文书
胡桃夹子观后感
2015/06/11 职场文书
2016大学生求职自荐信范文
2016/01/28 职场文书
Element实现动态表格的示例代码
2021/08/02 Javascript