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

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

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

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="https://m.php.cn/ja/faq/237118.html">初心者のためのPHPの基礎</a></span><span>次の記事:<a class="dBlack" title="初心者のためのPHPの基礎" href="https://m.php.cn/ja/faq/237122.html">初心者のためのPHPの基礎</a></span></div><div class="nphpSytBox2"><div class="nphpZbktTitle"><h2>関連記事</h2><em><a href="https://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="https://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="https://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="https://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="https://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="https://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><footer><div class="footer"><div class="footertop"><img src="/static/imghwm/logo.png" alt=""><p>福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!</p></div><div class="footermid"><a href="https://m.php.cn/ja/about/us.html">私たちについて</a><a href="https://m.php.cn/ja/about/disclaimer.html">免責事項</a><a href="https://m.php.cn/ja/update/article_0_1.html">Sitemap</a></div><div class="footerbottom"><p> © php.cn All rights reserved </p></div></div></footer><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><!-- Matomo --><script> var _paq = window._paq = window._paq || []; /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function() { var u="https://tongji.php.cn/"; _paq.push(['setTrackerUrl', u+'matomo.php']); _paq.push(['setSiteId', '9']); var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); })(); </script><!-- End Matomo Code --></html>