一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

php gd2 上傳圖片/文字水印/圖片水印/等比例縮略圖/實現(xiàn)代碼

復制代碼 代碼如下:
<?php
//上傳文件類型列表
$uptypes=array(
'image/jpg',
'image/jpeg',
'image/png',
'image/pjpeg',
'image/gif',
'image/bmp',
'image/x-png'
);
$max_file_size = 200000; //上傳文件大小限制, 單位BYTE
$path_im = "prod_img/"; //生成大圖保存文件夾路徑
$path_sim = "prod_simg/"; //縮略圖保存文件夾路徑
$watermark = 1; //是否加水印(1為加水印,其他為不加水印);
$watertype = 1; //水印類型(1為文字,2為圖片)
$waterstring = "[url=http://www.jy17.com/]http://www.jy17.com/[/url]"; //水印字符串
$waterimg = "water.png"; //水印圖片文件路徑
$waterclearly = 100; //水印透明度0-100,數(shù)字小透明高
$imclearly = 100; //圖片清晰度0-100,數(shù)字越大越清晰,文件尺寸越大
$simclearly = 75; //縮略圖清晰度0-100,數(shù)字越大越清晰,文件尺寸越大
$smallmark = 1; //是否生成縮略圖(1為加生成,其他為不);
$dst_sw = 80; //定義縮略圖寬度,高度我采用等比例縮放,所以只要比較寬度就可以了
?>
<form enctype="multipart/form-data" method="post" name="upform">
上傳文件:
<input name="upfile" type="file">
<input type="submit" value="上傳"><br>
允許上傳的文件類型為:<?=implode(',',$uptypes)?>
</form>
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
if (!is_uploaded_file($_FILES["upfile"][tmp_name]))
//是否存在文件
{
echo "圖片不存在!";
exit;
}
$file = $_FILES["upfile"];
if($max_file_size < $file["size"])
//檢查文件大小
{ $max_file_size = $max_file_size/1000;
echo "文件太大,超過 ".$max_file_size." KB!";
exit;
}
if(!in_array($file["type"],$uptypes))
//檢查文件類型
{
echo "文件類型不符!".$file["type"];
exit;
}
if(!file_exists($path_im))
//檢查上傳目錄是否存在,不存在創(chuàng)建
{
mkdir($path_im);
}
if(!file_exists($path_sim))
//檢查縮略圖目錄是否存在,不存在創(chuàng)建
{
mkdir($path_sim);
}
$filename = $file["tmp_name"];
$im_size = getimagesize($filename);
$src_w = $im_size[0];
$src_h = $im_size[1];
$src_type = $im_size[2];
$pinfo = pathinfo($file["name"]);
$filetype = $pinfo['extension'];
$all_path = $path_im.time().".".$filetype; //路徑+文件名,目前以上傳時間命名
if (file_exists($all_path))
{
echo "同名文件已經(jīng)存在了";
exit;
}
if(!move_uploaded_file ($filename,$all_path))
{
echo "移動文件出錯";
exit;
}
$pinfo = pathinfo($all_path);
$fname = $pinfo[basename];
echo "<font color=red>已經(jīng)成功上傳</font><br>文件名: <font color=blue>".$all_path."</font><br>";
echo "寬度:".$src_w."px ";
echo "長度:".$src_h."px ";
echo "<br> 大小:".$file["size"]." bytes";
switch($src_type)//判斷源圖片文件類型
{
case 1://gif
$src_im = imagecreatefromgif($all_path);//從源圖片文件取得圖像
break;
case 2://jpg
$src_im = imagecreatefromjpeg($all_path);
break;
case 3://png
$src_im = imagecreatefrompng($all_path);
break;
//case 6:
//$src_im=imagecreatefromwbmp($all_path);
//break;
default:
die("不支持的文件類型");
exit;
}
if($watermark == 1)
{
//$iinfo = getimagesize($all_path,$iinfo);
$dst_im = imagecreatetruecolor($src_w,$src_h);
//根據(jù)原圖尺寸創(chuàng)建一個相同大小的真彩色位圖
$white = imagecolorallocate($dst_im,255,255,255);//白
//給新圖填充背景色
$black = imagecolorallocate($dst_im,0,0,0);//黑
$red = imagecolorallocate($dst_im,255,0,0);//紅
$orange = imagecolorallocate($dst_im,255,85,0);//橙
imagefill($dst_im,0,0,$white);
imagecopymerge($dst_im,$src_im,0,0,0,0,$src_w,$src_h,100);//原圖圖像寫入新建真彩位圖中
//imagefilledrectangle($dst_im,1,$src_h-15,80,$src_h,$white);
switch($watertype)
{
case 1: //加水印字符串
imagestring($dst_im,5,5,$src_h-20,$waterstring,$orange);//文字水印,字體5號顏色橙色,位于背景圖左下角
break;
case 2: //加水印圖片
$lim_size = getimagesize($waterimg); //取得水印圖像尺寸,信息
switch($lim_size[2]) //判斷水印圖片文件類型
{
case 1://gif
$src_lim = imagecreatefromgif($waterimg); //取得水印圖像
break;
case 2://jpg
$src_lim = imagecreatefromjpeg($waterimg);
break;
case 3://png
$src_lim = imagecreatefrompng($waterimg);
break;
//case 6:
//$src_im=imagecreatefromwbmp($waterimg);
//break;
default:
die("不支持的文件類型");
exit;
}
$src_lw = ($src_w-$lim_size[0])/2; //水印位于背景圖正中央width定位
$src_lh = ($src_h-$lim_size[1])/2; //height定位
imagecopymerge($dst_im,$src_lim,$src_lw,$src_lh,0,0,$lim_size[0],$lim_size[1],$waterclearly);// 合并兩個圖像,設置水印透明度$waterclearly
imagedestroy($src_lim);
break;
}
switch($src_type)
{
case 1:
imagegif($dst_im,$all_path,$imclearly);//生成gif文件,圖片清晰度0-100
break;
case 2:
imagejpeg($dst_im,$all_path,$imclearly);//生成jpg文件,圖片清晰度0-100
break;
case 3:
imagepng($dst_im,$all_path,$imclearly);//生成png文件,圖片清晰度0-100
break;
//case 6:
//imagewbmp($dst_im,$all_path);
break;
}
//釋放緩存
imagedestroy($dst_im);
}
if($smallmark == 1)
{
$sall_path = $path_sim.time().".".$filetype;
if (file_exists($sall_path))
{
echo "同名文件已經(jīng)存在了";
exit;
}
if($src_w <= $dst_sw) // 原圖尺寸 <= 縮略圖尺寸
{
$dst_sim = imagecreatetruecolor($src_w,$src_h); //新建縮略圖真彩位圖
imagecopymerge($dst_sim,$src_im,0,0,0,0,$src_w,$src_h,100); //原圖圖像寫入新建真彩位圖中
}
if($src_w > $dst_sw) // 原圖尺寸 > 縮略圖尺寸
{
$dst_sh = $dst_sw/$src_w*$src_h;
$dst_sim = imagecreatetruecolor($dst_sw,$dst_sh); //新建縮略圖真彩位圖(等比例縮小原圖尺寸)
imagecopyresampled($dst_sim,$src_im,0,0,0,0,$dst_sw,$dst_sh,$src_w,$src_h); //原圖圖像寫入新建真彩位圖中
}
switch($src_type)
{
case 1:
imagegif($dst_sim,$sall_path,$simclearly);//生成gif文件,圖片清晰度0-100
break;
case 2:
imagejpeg($dst_sim,$sall_path,$simclearly);//生成jpg文件,圖片清晰度0-100
break;
case 3:
imagepng($dst_sim,$sall_path,$simclearly);//生成png文件,圖片清晰度0-100
break;
//case 6:
//imagewbmp($dst_sim,$sall_path);
break;
}
//釋放緩存
imagedestroy($dst_sim);
}
//釋放緩存
imagedestroy($src_im);
}
?>

php等比例生成縮略圖函數(shù)2
復制代碼 代碼如下:
function reSizeImg($imgSrc, $resize_width, $resize_height, $isCut=false) {
//圖片的類型
$type = substr ( strrchr ( $imgSrc, "." ), 1 );
//初始化圖象
if ($type == "jpg") {
$im = imagecreatefromjpeg ( $imgSrc );
}
if ($type == "gif") {
$im = imagecreatefromgif ( $imgSrc );
}
if ($type == "png") {
$im = imagecreatefrompng ( $imgSrc );
}
//目標圖象地址
$full_length = strlen ( $imgSrc );
$type_length = strlen ( $type );
$name_length = $full_length - $type_length;
$name = substr ( $imgSrc, 0, $name_length - 1 );
$dstimg = $name . "_s." . $type;
$width = imagesx ( $im );
$height = imagesy ( $im );
//生成圖象
//改變后的圖象的比例
$resize_ratio = ($resize_width) / ($resize_height);
//實際圖象的比例
$ratio = ($width) / ($height);
if (($isCut) == 1) //裁圖
{
if ($ratio >= $resize_ratio) //高度優(yōu)先
{
$newimg = imagecreatetruecolor ( $resize_width, $resize_height );
imagecopyresampled ( $newimg, $im, 0, 0, 0, 0, $resize_width, $resize_height, (($height) * $resize_ratio), $height );
ImageJpeg ( $newimg, $dstimg );
}
if ($ratio < $resize_ratio) //寬度優(yōu)先
{
$newimg = imagecreatetruecolor ( $resize_width, $resize_height );
imagecopyresampled ( $newimg, $im, 0, 0, 0, 0, $resize_width, $resize_height, $width, (($width) / $resize_ratio) );
ImageJpeg ( $newimg, $dstimg );
}
} else //不裁圖
{
if ($ratio >= $resize_ratio) {
$newimg = imagecreatetruecolor ( $resize_width, ($resize_width) / $ratio );
imagecopyresampled ( $newimg, $im, 0, 0, 0, 0, $resize_width, ($resize_width) / $ratio, $width, $height );
ImageJpeg ( $newimg, $dstimg );
}
if ($ratio < $resize_ratio) {
$newimg = imagecreatetruecolor ( ($resize_height) * $ratio, $resize_height );
imagecopyresampled ( $newimg, $im, 0, 0, 0, 0, ($resize_height) * $ratio, $resize_height, $width, $height );
ImageJpeg ( $newimg, $dstimg );
}
}
ImageDestroy ( $im );
}

php技術php gd2 上傳圖片/文字水印/圖片水印/等比例縮略圖/實現(xiàn)代碼,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 久久福利一区二区 | 久久国产精品99久久久久久老狼 | 亚洲精品9999久久久久 | 韩国久久精品 | 一区二区中文字幕 | 亚洲欧美在线综合一区二区三区 | 精品久久网站 | 黄色网页免费观看 | 点击进入不卡毛片免费观看 | 播放久久国产乱子伦精品 | 天天天操天天天干 | 四虎影视永久在线精品免费播放 | 国产精品九九久久一区hh | 视频在线国产 | 精品视频网| 91嫩草视频在线观看 | 国产骚妻| 在线视频第一页 | 狠狠色综合网 | 亚洲精品成人久久久影院 | 成人宗合网 | 国产福利在线观看精品 | 国产精品极品美女自在线观看免费 | 国产成人亚洲综合无 | 中文字幕一区二区在线视频 | 国产99视频精品免费视频免里 | 全黄三级| 国产精品一区二区久久精品涩爱 | 欧美日韩国产一区三区 | 日韩一区二区久久久久久 | 中文字幕在线观看日韩 | 九九九免费视频 | 欧美视频在线观看网站 | 色综合久久加勒比高清88 | 免费视频一区二区 | 伊人第四色 | 亚洲欧美94色 | 国产精品午夜久久 | 欧美色视频在线观看 | 四虎精品国产一区二区三区 | 午夜精品福利视频 |