php给图片增加中文水印
增加中文水印
/*-------------------------------------------------------------
**描述:这是用于给指定图片加底部水印(不占用图片显示区域)的自定义类,需创建对象调用
**版本:v1.0
**创建:2007-10-09
**更新:2007-10-09
**人员:老肥牛([email]fatkenme@163.com[/email] QQ:70177108)
**说明:1、需要gd库支持,需要iconv支持(php5已经包含不用加载)
2、只适合三种类型的图片,jpg/jpeg/gif/png,其它类型不处理
3、注意图片所在目录的属性必须可写
4、调用范例:
$objImg = new MyWaterDownChinese();
$objImg->Path = "images/";
$objImg->FileName = "1.jpg";
$objImg->Text = "胖胖交友网 [url]www.ppfriend.com[/url]";
$objImg->Font = "./font/simhei.ttf";
$objImg->Run();
**成员函数:
----------------------------------------------------------------*/
class MyWaterDownChinese{
var $Path = "./"; //图片所在目录相对于调用此类的页面的相对路径
var $FileName = ""; //图片的名字,如“1.jpg”
var $Text = ""; //图片要加上的水印文字,支持中文
var $TextColor = "#ffffff"; //文字的颜色,gif图片时,字体颜色只能为黑色
var $TextBgColor = "#000000"; //文字的背景条的颜色
var $Font = "c://windows//fonts//simhei.ttf"; //字体的存放目录,相对路径
var $OverFlag = true; //是否要覆盖原图,默认为覆盖,不覆盖时,自动在原图文件名后+"_water_down",如“1.jpg”=> "1_water_down.jpg"
var $BaseWidth = 200; //图片的宽度至少要>=200,才会加上水印文字。
//------------------------------------------------------------------
//功能:类的构造函数(php5.0以上的形式)
//参数:无
//返回:无
function __construct(){;}
//------------------------------------------------------------------
//功能:类的析构函数(php5.0以上的形式)
//参数:无
//返回:无
function __destruct(){;}
//------------------------------------------------------------------
//------------------------------------
//功能:对象运行函数,给图片加上水印
//参数:无
//返回:无
function Run()
{
if($this->FileName == "" || $this->Text == "")
return;
//检测是否安装GD库
if(false == function_exists("gd_info"))
{
echo "系统没有安装GD库,不能给图片加水印.";
return;
}
//设置输入、输出图片路径名
$arr_in_name = explode(".",$this->FileName);
//
$inImg = $this->Path.$this->FileName;
$outImg = $inImg;
$tmpImg = $this->Path.$arr_in_name[0]."_tmp.".$arr_in_name[1]; //临时处理的图片,很重要
if(!$this->OverFlag)
$outImg = $this->Path.$arr_in_name[0]."_water_down.".$arr_in_name[1];
//检测图片是否存在
if(!file_exists($inImg))
return ;
//获得图片的属性
$groundImageType = @getimagesize($inImg);
$imgWidth = $groundImageType[0];
$imgHeight = $groundImageType[1];
$imgType = $groundImageType[2];
if($imgWidth BaseWidth) //小于基本宽度,不处理
return;
//图片不是jpg/jpeg/gif/png时,不处理
switch($imgType)
{
case 1:
$image = imagecreatefromgif($inImg);
$this->TextBgColor = "#ffffff"; //gif图片字体只能为黑,所以背景颜色就设置为白色
break;
case 2:
$image = imagecreatefromjpeg($inImg);
break;
case 3:
$image = imagecreatefrompng($inImg);
break;
default:
return;
break;
}
//创建颜色
$color = @imagecolorallocate($image,hexdec(substr($this->TextColor,1,2)),hexdec(substr($this->TextColor,3,2)),hexdec(substr($this->TextColor,5,2))); //文字颜色
//生成一个空的图片,它的高度在底部增加水印高度
$newHeight = $imgHeight+20;
$objTmpImg = @imagecreatetruecolor($imgWidth,$newHeight);
$colorBg = @imagecolorallocate($objTmpImg,hexdec(substr($this->TextBgColor,1,2)),hexdec(substr($this->TextBgColor,3,2)),hexdec(substr($this->TextBgColor,5,2))); //背景颜色
//填充图片的背景颜色
@imagefill ($objTmpImg,0,0,$colorBg);
//把原图copy到临时图片中
@imagecopy($objTmpImg,$image,0,0,0,0,$imgWidth,$imgHeight);
//创建要写入的水印文字对象
$objText = $this->createText($this->Text);
//计算要写入的水印文字的位置
$x = 5;
$y = $newHeight-5;
//写入文字水印
@imagettftext($objTmpImg,10,0,$x,$y,$color,$this->Font,$objText);
//生成新的图片,临时图片
switch($imgType)
{
case 1:
imagegif($objTmpImg,$tmpImg);
break;
case 2:
imagejpeg($objTmpImg,$tmpImg);
break;
case 3:
imagepng($objTmpImg,$tmpImg);
break;
default:
return;
break;
}
//释放资源
@imagedestroy($objTmpImg);
@imagedestroy($image);
//重新命名文件
if($this->OverFlag)
{
//覆盖原图
@unlink($inImg);
@rename($tmpImg,$outImg);
}
else
{
//不覆盖原图
@rename($tmpImg,$outImg);
}
}
//--------------------------------------
//功能:创建水印文字对象
//参数:无
//返回:创建的水印文字对象
function createText($instring)
{
$outstring="";
$max=strlen($instring);
for($i=0;$i {
$h=ord($instring[$i]);
if($h>=160 && $i {
$outstring .= "".base_convert(bin2hex(iconv("gb2312","ucs-2",substr($instring,$i,2))),16,10).";";
$i++;
}
else
{
$outstring .= $instring[$i];
}
}
return $outstring;
}
}//class
?>

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

あなたが経験豊富な PHP 開発者であれば、すでにそこにいて、すでにそれを行っていると感じているかもしれません。あなたは、運用を達成するために、かなりの数のアプリケーションを開発し、数百万行のコードをデバッグし、大量のスクリプトを微調整してきました。

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。
