`

php > 根据远程图片URL 生成缩略图

    博客分类:
  • php
 
阅读更多
<?php
/**
*
*函数:调整图片尺寸或生成缩略图
*修改:2013-2-15
*返回: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 =@imagecreatefromgif($Image);
			break;
		case 2:
			$Img =@imagecreatefromjpeg($Image);
			Break;
		case 3:
			$Img =@imagecreatefrompng($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;
}
?>




<?php
//网络图片路径
$imgPath = 'http://news.jingway.cn/images/1382088444437.jpg';//远程URL 地址
$tempPath = 'aa/bbs.jpg';//保存图片路径

if(is_file($tempPath)){
	unlink($tempPath);
}

$bigImg=GrabImage($imgPath, $tempPath);

compressImg($bigImg,70,70,1);
?>


</body>
</html>

 

分享到:
评论

相关推荐

    无刷新上传--可生成缩略图--demo.zip

    可本地上传,与获取远程网址上传,可生成缩略图,完成的DEMO无错,使用很方便,只要一个网址,就可以上传,对于写后台应用来说是必不可少的小例程。

    PHP函数库,PHP函数大全,PHP函数实例,PHP函数手册,PHP5函数库实例

    按照比例改变图片大小(非生成缩略图) 收藏主页 数据验证类 数组转换成XML格式 日期计算 是否为电子邮件格式 柱形统计图 检查是否为一个合法的时间格式 检测URL地址有效性 检测文件是否图片 检测是否可以以...

    PicCMS图片管理系统 1.1.rar

    ·自动提取首张图片为缩略图 ·自动生成任意大小缩略图 ·幻灯片模式图片展示页 ·支持静态缓存,全站生成HTML ·内置采集器,迅速从网络抓取图文 ·自由分类,自动生成导航和内容调用 ·模板分离设计,轻松...

    iCMS (原DreamArticle) v5.0.1.rar

    自定义文章属性,方便模板调用 FCKeditor在线编辑器 远程图片本地化,提取第一个图片为缩略图 后台权限管理 栏目权限分配 管理员文章评论回复 无限引用 盖楼 简易留言功能 RSS功能 百度网站地图模板 GOOGLE网站地图...

    iCMS plus 5.1 Build 20110220.rar

    远程图片本地化,提取第一个图片为缩略图 后台权限管理 栏目权限分配 管理员文章评论回复 无限引用 盖楼 简易留言功能 RSS功能 百度网站地图模板 GOOGLE网站地图模板 广告管理功能 单独页面内容...

    iCMS PHP网站系统 v6.0.rar

    iCMS是一套功能强大、开源的PHP内容管理系统,支持无限级的分类与子分类,可设置单独页面、频道、列表页,支持分类自定义字段,具备完善的文章...支持远程图片本地化,自动生成图片缩略图等,后台测试界面如截图所示。

    iCMS Plus (原DreamArticle) V5.1 Build 20110220.rar

    远程图片本地化,提取第一个图片为缩略图 后台权限管理 栏目权限分配 管理员文章评论回复 无限引用 盖楼 简易留言功能 RSS功能 百度网站地图模板 GOOGLE网站地图模板 广告管理功能 单独页面内容...

    wordpress常用插件打包 百度搜索推送插件+sitemap生成+七牛云对象存储+评论防护

    支持一键禁止缩略图 支持自定义任意对象存储目录,一个存储桶可以多网站 支持自动文件重命名 支持本地和对象存储分离和同步 2020 年重构代码改变传统逻辑模型 二、 WordPress 百度搜索推送插件,主要功能:发布新...

    php网络开发完全手册

    6.4 远程文件的操作实例 99 6.5 文件的上传与下载 99 6.5.1 文件的上传 99 6.5.2 文件的下载 100 6.6 小结 101 第7章 字符的处理与正则表达式 102 7.1 字符类型的特殊性 102 7.2 字符的显示与格式化 102 7.2.1 字符...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    书名:《PHP开发实战1200例(第I卷)》(清华大学出版社.潘凯华.刘中华) PDF格式扫描版,全书分为5篇15章,共899页。2011年1月出版。...实例278 缩略图艺术库 371 实例279 提取图像的EXIF信息 374 6.2 控制、显示...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    书名:《PHP开发实战1200例(第I卷)》(清华大学出版社.潘凯华.刘中华) PDF格式扫描版,全书分为5篇15章,共899页。2011年1月出版。...实例278 缩略图艺术库 371 实例279 提取图像的EXIF信息 374 6.2 控制、显示...

    在线客房预订系统源码

    图片管理模块:无限分类,支持相册模式,支持远程图片上传,支持本地图片上传,支持GD模块生成缩略图。 用户管理模块:用户分组管理,可以挂接任何mysql数据库的用户数据表,例如IPB,DISCUZ.. 栏目管理模块:可以添加...

    YodPHP 1.4.1.zip

    生成多级缩略图;权限组开启了文件下载权限,对应开启外链功能;ace更新到1.29,支持emoji;emmt扩展加载机制优化;编辑器markdown多光标编辑,支持关联工具栏快捷功能;aero效果支持,登录界面优化;其他优化:...

    DreamArticle V3.0 UTF8GBK Build 2009040

    远程图片本地化,提取第一个图片为缩略图 广告管理功能 单独页面内容添加 自定义文章属性,方便模板调用 文章支持多页显示 文章草稿功能 文章TAG功能 文章DIGG功能 搜索功能 评论管理 评论[支持/反对]功能(AJAX) ...

    iCMS内容管理系统 v3.2版

    远程图片本地化,提取第一个图片为缩略图 后台权限管理 栏目权限分配 管理员文章评论回复 无限引用盖楼 简易留言功能 RSS功能 广告管理功能 单独页面内容添加 搜索功能 评论管理 评论[支持/反对]功能(AJAX) 生成HTML...

    DreamArticle文章管理源码 V3.1.0

    远程图片本地化,提取第一个图片为缩略图 广告管理功能 单独页面内容添加 自定义文章属性,方便模板调用 文章支持多页显示 文章草稿功能 文章TAG功能 文章DIGG功能 搜索功能 评论管理 评论[支持/反对]功能(AJAX) ...

    DYHB-blog 1.4 正式版.rar

    8:手机功能:手机访问博客,随时随地记录心情,发布日志日志,浏览标签,浏览相册,查看相片,自动GD生成缩略图,减少网络数据传输,并且在后台自由设置。可以在手机设置博客信息,修改用户信息。 9:设置系统:...

    DYHB-blog v1.4 正式版.rar

    8:手机功能:手机访问博客,随时随地记录心情,发布日志日志,浏览标签,浏览相册,查看相片,自动GD生成缩略图,减少网络数据传输,并且在后台自由设置。可以在手机设置博客信息,修改用户信息。 9:设置系统:...

    miceCMS觅策企业网站管理系统 5.0.zip

    系统的功能模块和模板风格可根据企业需要添加或更换,网站管理员输入系统口令后,可通过浏览器对企业站点远程管理及日常内容更新和维护。 开源,易用,模块化 miceCMS是一个开源、易用、简洁、高效的网站内容管理...

Global site tag (gtag.js) - Google Analytics