<?PHP
class HanroadClass
{
/**//**********************
利用PHP的GD库生成缩略图。
支持图片格式:jpg,gif,png
$source_img: 源图象完整路径
$target_dir: 目标图象目录
$target_name: 目标图象名称
$new_width: 目标图象宽
$new_height: 目标图象高
$if_cut: 是否裁图
1(裁图): 裁图则按设置的大小生成目标图象
0(不裁): 不裁则按比例生成目标图象
**********************/
function HrResize($source_img,$target_dir,$target_name,$new_width,$new_height,$if_cut)
{
//图片类型
$img_type = strtolower(substr(strrchr($source_img,"."),1));
//图象的完整目标路径
$tar_url = $target_dir."/".$target_name.".".$img_type;
//初始化图象
if($img_type=="jpg") $temp_img = imagecreatefromjpeg($source_img);
if($img_type=="gif") $temp_img = imagecreatefromgif($source_img);
if($img_type=="png") $temp_img = imagecreatefrompng($source_img);
//原始图象的宽和高
$old_width = imagesx($temp_img);
$old_height = imagesy($temp_img);
//改变前后的图象的比例
$new_ratio = $new_width/$new_height;
$old_ratio = $old_width/$old_height;
//生成新图象的参数
//情况一:裁图 则按设置的大小生成目标图象
if($if_cut=="1")
{
$new_width = $new_width;
$new_height = $new_height;
//高度优先
if($old_ratio>=$new_ratio)
{
$old_width = $old_height*$new_ratio;
$old_height = $old_height;
}
//宽度优先
else
{
$old_width = $old_width;
$old_height = $old_width/$new_ratio;
}
}
//情况二:不裁图 则按比例生成目标图象
else
{
$old_width = $old_width;
$old_height = $old_height;
//高度优先
if($old_ratio>=$new_ratio)
{
$new_width = $new_width;
$new_height = $new_width/$old_ratio;
}
//宽度优先
else
{
$new_width = $new_height*$old_ratio;
$new_height = $new_height;
}
}
//生成新图片
$new_img = imagecreatetruecolor($new_width,$new_height);
imagecopyresampled($new_img,$temp_img,0,0,0,0,$new_width,$new_height,$old_width,$old_height);
if($img_type=="jpg") imagejpeg($new_img,$tar_url);
if($img_type=="gif") imagegif($new_img,$tar_url);
if($img_type=="png") imagepng($new_img,$tar_url);
}
}
?>
class HanroadClass
{
/**//**********************
利用PHP的GD库生成缩略图。
支持图片格式:jpg,gif,png
$source_img: 源图象完整路径
$target_dir: 目标图象目录
$target_name: 目标图象名称
$new_width: 目标图象宽
$new_height: 目标图象高
$if_cut: 是否裁图
1(裁图): 裁图则按设置的大小生成目标图象
0(不裁): 不裁则按比例生成目标图象
**********************/
function HrResize($source_img,$target_dir,$target_name,$new_width,$new_height,$if_cut)
{
//图片类型
$img_type = strtolower(substr(strrchr($source_img,"."),1));
//图象的完整目标路径
$tar_url = $target_dir."/".$target_name.".".$img_type;
//初始化图象
if($img_type=="jpg") $temp_img = imagecreatefromjpeg($source_img);
if($img_type=="gif") $temp_img = imagecreatefromgif($source_img);
if($img_type=="png") $temp_img = imagecreatefrompng($source_img);
//原始图象的宽和高
$old_width = imagesx($temp_img);
$old_height = imagesy($temp_img);
//改变前后的图象的比例
$new_ratio = $new_width/$new_height;
$old_ratio = $old_width/$old_height;
//生成新图象的参数
//情况一:裁图 则按设置的大小生成目标图象
if($if_cut=="1")
{
$new_width = $new_width;
$new_height = $new_height;
//高度优先
if($old_ratio>=$new_ratio)
{
$old_width = $old_height*$new_ratio;
$old_height = $old_height;
}
//宽度优先
else
{
$old_width = $old_width;
$old_height = $old_width/$new_ratio;
}
}
//情况二:不裁图 则按比例生成目标图象
else
{
$old_width = $old_width;
$old_height = $old_height;
//高度优先
if($old_ratio>=$new_ratio)
{
$new_width = $new_width;
$new_height = $new_width/$old_ratio;
}
//宽度优先
else
{
$new_width = $new_height*$old_ratio;
$new_height = $new_height;
}
}
//生成新图片
$new_img = imagecreatetruecolor($new_width,$new_height);
imagecopyresampled($new_img,$temp_img,0,0,0,0,$new_width,$new_height,$old_width,$old_height);
if($img_type=="jpg") imagejpeg($new_img,$tar_url);
if($img_type=="gif") imagegif($new_img,$tar_url);
if($img_type=="png") imagepng($new_img,$tar_url);
}
}
?>
解决方案 »
- 求教PHP的move_uploaded_file()函数上传.rar文件出错
- ajax 提交表单数据 各位大侠帮忙,在线等。。
- php如何实现获取某个网络资源,如 www.g.cn/abc.zip ,有哪些是可变通的,想尝试突破ISA服务器
- 打算在linux下进行php编程,给点意见吧
- 一年经验,去面试要西装革履么?
- 请问怎么实现点链接直接下载文件,而不是打开一个文件
- 本地运行php 遇到文件夹不可写的问题!
- ◇◆有用php做过ftp电影网站的吗?进来聊一聊,到时给你电影网站用户名和密码◇◆
- 高手们帮我看看下面的程序!
- 如何中断一个内含表单提交的include文件?
- 谁有用php解压缩目录的类或是例子
- 页面缓存的问题
function LoadGif ($imgname) {
$im = @ImageCreateFromGIF ($imgname); /* Attempt to open */
if (!$im) { /* See if it failed */
$im = ImageCreate (150, 30); /* Create a blank image */
$bgc = ImageColorAllocate ($im, 255, 255, 255);
$tc = ImageColorAllocate ($im, 0, 0, 0);
ImageFilledRectangle ($im, 0, 0, 150, 30, $bgc);
/* Output an errmsg */
ImageString($im, 1, 5, 5, "Error loading $imgname", $tc);
}
return $im;
}
function LoadJpeg ($imgname) {
$im = @ImageCreateFromJPEG ($imgname); /* Attempt to open */
if (!$im) { /* See if it failed */
$im = ImageCreate (150, 30); /* Create a blank image */
$bgc = ImageColorAllocate ($im, 255, 255, 255);
$tc = ImageColorAllocate ($im, 0, 0, 0);
ImageFilledRectangle ($im, 0, 0, 150, 30, $bgc);
/* Output an errmsg */
ImageString ($im, 1, 5, 5, "Error loading $imgname", $tc);
}
return $im;
}
function runSmall($imgname){
$size = GetImageSize($imgname);
$img_type = substr(trim($imgname), -3, 3);
$img_type = strtoupper($img_type);
if ($img_type == "JPG" ) {
$src_im = LoadJpeg($imgname);
}elseif ($img_type == "GIF"){
$src_im = LoadGif($imgname);
}
$dst_im = imagecreatetruecolor (400,300);
imagepalettecopy( $dst_im, $src_im);
imagecopyresized( $dst_im, $src_im, 0, 0, 0, 0,400,300,$size[0],$size[1]);
if (function_exists("imagejpeg")) {
Header("Content-type: image/jpeg");
ImageJPEG($dst_im);
}}
runSmall($imageUrl);
?>