ホームページ  >  記事  >  php教程  >  画像に透かしを追加する PHP チュートリアル

画像に透かしを追加する PHP チュートリアル

WBOY
WBOYオリジナル
2016-06-21 08:57:27899ブラウズ

PHP给图片加水印相对ASP来说,要简单多了,看下面代码:

/*****************************************************

参数说明:

$max_file_size : 上传文件大小限制, 单位BYTE

$destination_folder : 上传文件路径

$watermark : 是否附加水印(1为加水印,其他为不加水印);

使用说明:

1. 将PHP.INI文件里面的"extension=php_gd2.dll"一行前面的;号去掉,因为我们要用到GD库;

2. 将extension_dir =改为你的php_gd2.dll所在目录;

3. http://www.knowsky.com/php.asp;

****************************************************/

//上传文件类型列表

$uptypes=array(

'image/jpg',

'image/jpeg',

'image/png',

'image/pjpeg',

'image/gif',

'image/bmp',

'image/x-png'

);

$max_file_size=2000000; //上传文件大小限制, 单位BYTE

$destination_folder="uploadimg/"; //上传文件路径

$watermark=1; //是否附加水印(1为加水印,其他为不加水印);

$watertype=1; //水印类型(1为文字,2为图片)

$waterposition=1; //水印位置(1为左下角,2为右下角,3为左上角,4为右上角,5为居中);

$waterstring="http://www.xplore.cn/"; //水印字符串

$waterimg="xplore.gif"; //水印图片

$imgpreview=1; //是否生成预览图(1为生成,其他为不生成);

$imgpreviewsize=1/2; //缩略图比例

?>



/title> <br><style type="text/css"< - <br/>ボディ <br/>{ <br/> フォントサイズ: 9pt; <br/>} <br/>入力 <br/>{ <br/> 背景色: #66CCFF; <br/> 境界線: 1px inset # CCCCCC; <br/>} <br/>--> <br/></style> <br><body> <br><form enctype="multipart/form-data" ="post" name="upform"> <br> ファイルをアップロードします: <br> <input name="upfile" type="file"> <br> <input type="submit" value= "アップロード"><br> <br> アップロードできるファイルの種類は次のとおりです:<?=implode(', ',$uptypes)?> <br></form> <br><?php <br/>if ($_SERVER['REQUEST_METHOD'] == 'POST') <br/>{ <br/> if (!is_uploaded_file($_FILES["upfile"][tmp_name])) <br/> // ファイルかどうか存在します <br/> { <br/> echo "画像が存在しません!"; <br/> exit <br/> } <br/> $file = $_FILES["upfile"]; <br/> if($max_file_size < $file[ "size"]) <br/> // ファイル サイズを確認します <br/> { <br/> echo "ファイルが大きすぎます!" <br/> exit <br/> } <br/> if(!in_array ($file["type "], $uptypes)) <br/> //ファイルの種類を確認します <br/> { <br/> echo "ファイルの種類が一致しません!".$file["type"]; > 終了; <br/> } <br/> if(!file_exists($destination_folder)) <br/> { <br/> mkdir($destination_folder); <br/> } <br/> $filename=$file["tmp_name"]; <br/> $image_size = getimagesize($filename ); <br/> $pinfo=pathinfo($file["name"]); <br/> $ftype=$pinfo['extension']; <br/> $destination = $ destination_folder.time().".". $ftype; <br/> if (file_exists($destination) && $overwrite != true) <br/> { <br/> echo "同じ名前のファイルが既に存在します"; 🎜> exit; <br/> } <br/> if( !move_uploaded_file ($filename, $destination)) <br/> { <br/> echo "ファイルの移動エラー"; <br/> } <br/> $ pinfo=pathinfo($destination); <br/> $fname =$pinfo[basename]; <br/> echo " <font color=red>アップロードされました</font><br>ファイル名: <br> <font color=blue>".$destination_folder.$ fname."</font><br>"; <br> echo " 幅: ".$image_size[0]; <br> echo " 長さ: " .$image_size[1]; <br> echo "< ;br> サイズ: ".$file["size"]." バイト"; <br> if($watermark==1) <br> { <br> $iinfo=getimagesize($destination,$iinfo); <br> $nimage=imagecreatetruecolor($image_size[0],$image_size[1]) <br> $white=imagecolorallocate($nimage,255,255,255); $black=imagecolorallocate($nimage,0,0,0 ); <br> $red=imagecolorallocate($nimage,255,0,0) <br> imagefill($nimage,0,0,$white); 🎜> switch ($iinfo[2]) <br> { <br> ケース 1: <br> $simage =imagecreatefromgif($destination); <br> ケース 2: <br> $simage =imagecreatefromjpeg ($目的地); <br>ブレーク; <br> ケース 3: <br> $simage =imagecreatefrompng($destination); <br> ケース 6: <br> $simage =imagecreatefromw bmp($destination); <br> デフォルト: <br> die("サポートされていないファイルの種類"); <br> exit <br> imagecopy($nimage,$simage,0,0,0,0,$image_size[0] ,$image_size[1]); > imagefilledrectangle($nimage,1,$image_size[1]-15,80,$image_size[1],$white); <br> switch($watertype) <br> { <br> ケース 1: //透かしを追加画像 <br> $simage1 =imagecreatefromgif("xplore.gif"); <br> imagecopy($nimage,$simage1,0,0,0,0,85,15); <br> imagedestroy($ simage1); 🎜> $destination);ブレーク; 3: <br> imagepng($nimage , $destination); <br> ケース 6: <br> imagewbmp($nimage, $destination); <br> //imagejpeg($nimage, $destination); <br> } <br> //元のアップロードされたファイルを上書きします <br> 🎜> imagedestroy($simage); <br> } <br> if($imgpreview==1) <br> { <br> echo "<br>画像プレビュー:<br>"; <ccid_file value="" width=".($image_size[0]*$imgpreviewsize)."<br/>height=".($image_size[1]*$imgpreviewsize);" <br/> echo " alt="画像プレビュー:rファイル名:".$destination."rアップロード時間:" />" <br> } <br> } <br>?> <br></body> ;<br> <br> <br> <br> <br> <br><br></p></div><div class="nphpQianMsg"><div class="clear"></div></div><div class="nphpQianSheng"><span>声明:</span><div>この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。</div></div></div><div class="nphpSytBox"><span>前の記事:<a class="dBlack" title="初心者のためのPHPの基礎" href="http://m.php.cn/ja/faq/237118.html">初心者のためのPHPの基礎</a></span><span>次の記事:<a class="dBlack" title="初心者のためのPHPの基礎" href="http://m.php.cn/ja/faq/237122.html">初心者のためのPHPの基礎</a></span></div><div class="nphpSytBox2"><div class="nphpZbktTitle"><h2>関連記事</h2><em><a href="http://m.php.cn/ja/article.html" class="bBlack"><i>続きを見る</i><b></b></a></em><div class="clear"></div></div><ins class="adsbygoogle" style="display:block" data-ad-format="fluid" data-ad-layout-key="-6t+ed+2i-1n-4w" data-ad-client="ca-pub-5902227090019525" data-ad-slot="8966999616"></ins><script> (adsbygoogle = window.adsbygoogle || []).push({}); </script><ul class="nphpXgwzList"><li><b></b><a href="http://m.php.cn/ja/faq/92233.html" title="Windows7系统下Netbeans+PHPUnit搭建PHP单元测试开发环境及PHPUn" class="aBlack">Windows7系统下Netbeans+PHPUnit搭建PHP单元测试开发环境及PHPUn</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ja/faq/97151.html" title="程序猿ProMonkey V2.03" class="aBlack">程序猿ProMonkey V2.03</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ja/faq/94770.html" title="PHP Navigator" class="aBlack">PHP Navigator</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ja/faq/90182.html" title="php返回数组中指定的一列(php5.5.0默认函数array_column()在php" class="aBlack">php返回数组中指定的一列(php5.5.0默认函数array_column()在php</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ja/faq/208396.html" title="htmlentitiesとhtmlspecialcharsの違いの詳しい説明" class="aBlack">htmlentitiesとhtmlspecialcharsの違いの詳しい説明</a><div class="clear"></div></li></ul></div></div><ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-5902227090019525" data-ad-slot="5027754603"></ins><script> (adsbygoogle = window.adsbygoogle || []).push({}); </script><div class="nphpFoot"><div class="nphpFootBg"><ul class="nphpFootMenu"><li><a href="http://m.php.cn/ja/"><b class="icon1"></b><p>ホームページ</p></a></li><li><a href="http://m.php.cn/ja/course.html"><b class="icon2"></b><p>コース</p></a></li><li><a href="http://m.php.cn/ja/wenda.html"><b class="icon4"></b><p>に質問</p></a></li><li><a href="http://m.php.cn/ja/login"><b class="icon5"></b><p>私の</p></a></li><div class="clear"></div></ul></div></div><div class="nphpYouBox" style="display: none;"><div class="nphpYouBg"><div class="nphpYouTitle"><span onclick="$('.nphpYouBox').hide()"></span><a href="http://m.php.cn/ja/"></a><div class="clear"></div></div><ul class="nphpYouList"><li><a href="http://m.php.cn/ja/"><b class="icon1"></b><span>ホームページ</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ja/course.html"><b class="icon2"></b><span>コース</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ja/article.html"><b class="icon3"></b><span>記事</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ja/wenda.html"><b class="icon4"></b><span>に質問</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ja/dic.html"><b class="icon6"></b><span>辞書</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ja/course/type/99.html"><b class="icon7"></b><span>マニュアル</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ja/xiazai/"><b class="icon8"></b><span>ダウンロード</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ja/faq/zt" title="特集"><b class="icon12"></b><span>特集</span><div class="clear"></div></a></li><div class="clear"></div></ul></div></div><div class="nphpDing" style="display: none;"><div class="nphpDinglogo"><a href="http://m.php.cn/ja/"></a></div><div class="nphpNavIn1"><div class="swiper-container nphpNavSwiper1"><div class="swiper-wrapper"><div class="swiper-slide"><a href="http://m.php.cn/ja/" >ホームページ</a></div><div class="swiper-slide"><a href="http://m.php.cn/ja/article.html" class="hover">記事</a></div><div class="swiper-slide"><a href="http://m.php.cn/ja/wenda.html" >に質問</a></div><div class="swiper-slide"><a href="http://m.php.cn/ja/course.html" >コース</a></div><div class="swiper-slide"><a href="http://m.php.cn/ja/faq/zt" >特集</a></div><div class="swiper-slide"><a href="http://m.php.cn/ja/xiazai" >ダウンロード</a></div><div class="swiper-slide"><a href="http://m.php.cn/ja/game" >ゲーム</a></div><div class="swiper-slide"><a href="http://m.php.cn/ja/dic.html" >辞書</a></div><div class="clear"></div></div></div><div class="langadivs" ><a href="javascript:;" class="bg4 bglanguage"></a><div class="langadiv" ><a onclick="javascript:setlang('zh-cn');" class="language course-right-orders chooselan " href="javascript:;"><span>简体中文</span><span>(ZH-CN)</span></a><a onclick="javascript:setlang('en');" class="language course-right-orders chooselan " href="javascript:;"><span>English</span><span>(EN)</span></a><a onclick="javascript:setlang('zh-tw');" class="language course-right-orders chooselan " href="javascript:;"><span>繁体中文</span><span>(ZH-TW)</span></a><a onclick="javascript:;" class="language course-right-orders chooselan chooselanguage" href="javascript:;"><span>日本語</span><span>(JA)</span></a><a onclick="javascript:setlang('ko');" class="language course-right-orders chooselan " href="javascript:;"><span>한국어</span><span>(KO)</span></a><a onclick="javascript:setlang('ms');" class="language course-right-orders chooselan " href="javascript:;"><span>Melayu</span><span>(MS)</span></a><a onclick="javascript:setlang('fr');" class="language course-right-orders chooselan " href="javascript:;"><span>Français</span><span>(FR)</span></a><a onclick="javascript:setlang('de');" class="language course-right-orders chooselan " href="javascript:;"><span>Deutsch</span><span>(DE)</span></a></div></div><script> var swiper = new Swiper('.nphpNavSwiper1', { slidesPerView : 'auto', observer: true,//修改swiper自己或子元素时,自动初始化swiper observeParents: true,//修改swiper的父元素时,自动初始化swiper }); </script></div></div><!--顶部导航 end--><script>isLogin = 0;</script><script type="text/javascript" src="/static/layui/layui.js"></script><script type="text/javascript" src="/static/js/global.js?4.9.47"></script></div><script src="https://vdse.bdstatic.com//search-video.v1.min.js"></script><link rel='stylesheet' id='_main-css' href='/static/css/viewer.min.css' type='text/css' media='all'/><script type='text/javascript' src='/static/js/viewer.min.js?1'></script><script type='text/javascript' src='/static/js/jquery-viewer.min.js'></script><script>jQuery.fn.wait = function (func, times, interval) { var _times = times || -1, //100次 _interval = interval || 20, //20毫秒每次 _self = this, _selector = this.selector, //选择器 _iIntervalID; //定时器id if( this.length ){ //如果已经获取到了,就直接执行函数 func && func.call(this); } else { _iIntervalID = setInterval(function() { if(!_times) { //是0就退出 clearInterval(_iIntervalID); } _times <= 0 || _times--; //如果是正数就 -- _self = $(_selector); //再次选择 if( _self.length ) { //判断是否取到 func && func.call(_self); clearInterval(_iIntervalID); } }, _interval); } return this; } $("table.syntaxhighlighter").wait(function() { $('table.syntaxhighlighter').append("<p class='cnblogs_code_footer'><span class='cnblogs_code_footer_icon'></span></p>"); }); $(document).on("click", ".cnblogs_code_footer",function(){ $(this).parents('table.syntaxhighlighter').css('display','inline-table');$(this).hide(); }); $('.nphpQianCont').viewer({navbar:true,title:false,toolbar:false,movable:false,viewed:function(){$('img').click(function(){$('.viewer-close').trigger('click');});}}); </script></body></html>