例 1
Header("Content-type: image/png") /*画像が表示されることをブラウザに通知します。 Output*/
$im = imagecreate(400, 300); /*画像のサイズを定義します*/
$gray = ImageColorAllocate($im, 235, 235, 235); , 128, 255);
$fontfile = "simkai.ttf";
/* $fontfile フォントのパスは、オペレーティング システムに応じて、simhei.ttf (黒体)、SIMKAI.TTF (通常のスクリプト) になります。 、SIMFANG.TTF (宋朝模倣)、SIMSUN.TTC (宋スタイル) &新宋朝)、および GD*/
$str = iconv('GB2312','UTF-8','中国語透かし' でサポートされているその他の中国語フォント); /*gb2312 文字セットを UTF-8 文字に変換*/
ImageTTFText($im, 30, 0, 100, 200, $pink, $fontfile, $str);
/* 中国語のウォーターマークを追加*/
Imagepng( $im);
ImageDestroy($im);
例 2
// $new_img 画像ファイル名が空の場合は保存します 画像を保存しないことを示します
// $text string content
// text_size 文字列サイズ
// text_angle フォント文字列出力角度
// text_x 文字列出力 x 座標
// text_y 文字列出力 y 座標
// $ text_font フォントファイル名
// $r, $g, $b 文字列色 RGB 値
// *********** *************** **************** //
function img_text($img, $new_img, $text, $text_size, $ text_angle, $text_x, $text_y, $text_font, $r, $g, $b){
$text=iconv("gb2312","UTF-8",$text);
Header("コンテンツタイプ: 画像/gif");
$im = @imagecreatefromstring(file_get_contents($img) ) or die ("画像を開けませんでした!");
$color = ImageColorAllocate($im, $r,$g,$b);
//ImageTTFText(int im, int size, int angle, int x, int y , intcol, string fontfile, string text):
//この関数は、TTF (TrueType フォント) フォント テキストを画像に書き込みます。
//パラメータ: size はフォントのサイズです。
// angle は時計回りに計算されたフォントの角度です。0 度は水平 (左から右)、90 度はテキストを下から上に示します。 // 2 つのパラメータ x と y はテキストの座標値です (原点は左上隅です)
//col はテキストの色です
// fontfile はフォント ファイルの名前です。
// text は文字列の内容です。
ImageTTFText($im, $text_size, $text_angle, $text_x, $text_y, $color, $text_font, $text);
if ($new_img==""): // しないでください。画像を保存、表示のみ
else:
ImageGif($im,$new_img); // 画像を保存しますが、表示されません
endif; // グラフィックを終了し、メモリ領域を解放します
? >
例 3
コードをコピーします
コードは次のとおりです:
/*
* 関数: PHP 画像透かし (透かしは画像またはテキストをサポートします)
* パラメーター:
* $groundImage 背景画像、つまり透かしを入れる必要がある画像は、現在 GIF のみをサポートしています。 JPG、PNG 形式 ;
* $waterPos ウォーターマークの位置、10 個の状態があり、0 はランダムな位置です
* 1 は左上、2 は中央上、3 は右上です。 、5 は中央の中央、6 は右側にあります
* 7 は左側の下部、8 は中央の下部、9 は右側の下部を意味します
* $waterImage 画像の透かし。つまり、透かしとして使用される画像は、現在 GIF、JPG、および PNG 形式のみをサポートします
* $waterText テキスト透かし、つまり、テキストは透かしとして使用されます。ASCII コードはサポートされますが、中国語はサポートされません
* $textFont テキストのサイズ、値は 1、2、3、4、または 5、デフォルトは 5 です。
* $textColor テキストの色、値は 16 進数の色の値、デフォルトは #FF0000 (赤) です。 * 注: GD 2.0 をサポート、FreeType、GIF Read、GIF Create、JPG、PNG をサポート
* $waterImage と $waterText を同時に使用しないことをお勧めします 使用するには、どちらかを選択するだけで、$waterImage が最初に使用されます。
* $waterImage が有効な場合、パラメータ $waterString、$stringFont、および $stringColor は無効になります。
* 透かし入り画像のファイル名は$groundImageと同じです。
* 著者:longware @ 2004-11-3 14:15:13
*/
function imageWaterMark($groundImage,$waterPos=0,$waterImage=””,$waterText=””,$textFont=5,$textColor =”#FF0000″)
{
$isWaterImage = FALSE;
$formatMsg = 「このファイル形式はまだサポートされていません。画像を GIF、JPG、または PNG 形式に変換してください。”;
//ウォーターマークファイルを読み込む
if(!emptyempty($waterImage) && file_exists($waterImage))
{
$water_info = getimagesize($waterImage);
$water_w = $water_info[ 0 ];//ウォーターマーク画像の幅を取得
$water_h = $water_info[1];//ウォーターマーク画像の高さを取得
switch($water_info[2])//ウォーターマーク画像の形式を取得
{
ケース 1:$water_im = imagecreatefromgif($waterImage);break;
case 2:$water_im = imagecreatefromjpeg($waterImage);break;
case 3:$water_im = imagecreatefrompng($waterImage);break; $formatMsg);
}
}
//背景画像を読み込みます
if(!emptyempty($groundImage) && file_exists($groundImage))
{
$ground_info = getimagesize($groundImage);
$ground_w = $ground_info[ 0];// 背景画像の幅を取得
$ground_h = $ground_info[1];// 背景画像の高さを取得
switch($ground_info[2])// 背景画像の形式を取得
{
case 1:$ground_im = imagecreatefromgif($ groundImage);break;
case 2:$ground_im = imagecreatefromjpeg($groundImage);break;
case 3:$ground_im = imagecreatefrompng($groundImage);break; ($formatMsg);
}
}
else
{
die("透かしを入れる必要がある画像が存在しません!")
}
//透かしの位置
if($isWaterImage)//画像の透かし
{
$w = $water_w;
$h = $water_h;
$label = "画像";
else//テキスト透かし
{
$temp = imagettfbbox(ceil($textFont*5),0,". /cour.ttf",$waterText);//TrueType フォントを使用してテキストの範囲を取得
$w = $temp[2] - $temp[6];
$h = $temp[3] - $temp[7] ;
unset($temp);
$label = "テキストエリア";
if( ($ground_w{
echo "ウォーターマークを付ける必要がある画像はウォーターマーク「.$label」より長いです。小さいため、ウォーターマークを生成できません。 ”;
return;
}
switch($waterPos)
{
case 0://random
$posX = rand(0,($ground_h); - $h));
break;
case 1://1 は左上を意味します
$posY = 0;
case 2://2 は上中央を意味します
$posX = ($
$posY = 0;
$posY = 0;
$posY = 0; ://4 は中央左を意味します
$posX = 0;
$posY = ($ground_h - $h) / 2;
case 5://5 は中央中央を意味します
$posX = ($ground_w - $w) ) / 2;
$posY = ($ground_h - $h) / 2;
case 6://6 は中央の右です
$posX = $ground_w - $w; $h) / 2;
case 7://7 は左下
$posY = $ground_h - $h;
case 8://8 は下中央
$ posX = ($ground_w - $w) / 2;
$posY = $ground_h - $h;
case 9://9 は右下です
$posX = $ground_w - $w; ground_h - $h;
default://random
$posX = rand(0,($ground_h - $h) ; posY, 0 , 0, $water_w,$water_h);//ウォーターマークを対象ファイルにコピー
}
else//テキストウォーターマーク
{
if( !emptyempty($textColor) && (strlen($textColor)==7) )
{
$R = hexdec(substr($textColor,1,2));
$G = hexdec(substr($textColor,3,2)); }
else
{
die("ウォーターマークのテキストの色の形式が正しくありません。”);
}
imagestring ($ground_im, $textFont, $posX, $posY, $waterText, imagecolorallocate($ground_im, $R, $G, $B));
}
// 水印後の画像を生成
@unlink($groundImage);
switch($ground_info[2])//背景画像取得の格式
{
case 1:imagegif($ground_im,$groundImage);break;
ケース 2:imagejpeg($ground_im,$groundImage);break;
ケース 3:imagepng($ground_im,$groundImage);break;
デフォルト:die($errorMsg);
}
//释放内存
if(isset($water_info)) unset($water_info);
if(isset($water_im)) imagedestroy($water_im);
unset($ground_info);
imagedestroy($ground_im);
}
//——————————————————————————————
$id=$_REQUEST['id'];
$num = count($_FILES['ユーザーファイル']['名前']);
print_r($_FILES['ユーザーファイル']);
print_r($_FILES['ユーザーファイル']['名前']);
$num をエコーします。
エコー「
」;
if(isset($id)){
for($i=0;$iif(isset($_FILES) && !emptyempty($_FILES['userfile']) && $ _FILES['userfile']['size']>0)
{
$uploadfile = “./”.time().”_”.$_FILES['userfile'][name][$i];
エコー「
」;
echo $uploadfile;
if (copy($_FILES['userfile']['tmp_name'][$i], $uploadfile))
{
echo “OK
”;
//文字水印
//imageWaterMark($uploadfile,5,”",”HTTP://www.lvye.info”,5,”#cccccc”);
//图片水印
$waterImage=”logo_ok1. gif”;//水印图片路径
imageWaterMark($uploadfile,9,$waterImage);
echo “
}
else
{
echo “失敗
”;
}
}
}
}
?>
代 4
中国語の透かしを追加
/*------------------------------------- --- ------------------------
**説明: これは、指定された画像に下部の透かしを追加するために使用されるカスタム クラスです (画像表示領域を占有しない)、オブジェクト呼び出しを作成する必要があります
** 作成日: 2007-10-09
** 更新日: 2007-10-09
** 説明: 1. gd ライブラリのサポートと iconv サポートが必要です (php5は既に含まれているためロードする必要はありません)
2. jpg/jpeg/gif/png の 3 つのタイプの画像にのみ適しており、他のタイプは処理されません
3. 画像が配置されているディレクトリの属性に注意してください。書き込み可能である必要があります
4. 呼び出し例:
$objImg = new MyWaterDown Chinese();
$objImg->FileName = "1.jpg"; ;テキスト = "HAHAKONGJIAN[url]HTTP://HI.BAIDU.COM/LYSONCN[/ url]";
$objImg->フォント = "./font/simhei.ttf"; ();
**メンバー関数:
---------- ---------------------------- -------------------- ---*/
class MyWaterDown Chinese{
var $Path = "./"; //画像が保存されているディレクトリの相対パスこのクラスを呼び出すページに相対的に配置されます
var $FileName = ""; //「1.jpg」などの画像の名前
var $Text = ""; //追加される透かしテキスト画像は中国語をサポートします
var $TextColor = "#ffffff"; //テキストの色、GIF 画像の場合、フォントの色は黒のみです
var $TextBgColor = "#000000"; bar
var $Font = "c://windows//fonts//simhei.ttf"; //フォント格納ディレクトリ、相対パス
var $OverFlag = true; //元の画像を上書きするかどうか、デフォルトは上書きしない場合は、元の画像ファイル名の後に「1.jpg」=>「1_water_down.jpg」のように自動的に追加されます
var $BaseWidth = 200;透かしテキストが追加される前に、少なくとも 200 以上である必要があります。
//----------------------------------------------- --- -------------------
//関数: クラスコンストラクター (php5.0 以降)
//パラメータ: なし
//戻り値: なし
function __construct(){;}
//----------------------------------------------------- - -------------------------
//関数: クラス デストラクター (php5.0 以降)
//パラメータ: なし
//Return:なし
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 ->ファイル名);
//
$inImg = $this->Path.$this->ファイル名
$outImg = $inImg = $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[1];
$imgWidth BaseWidth) //基本幅未満の場合は処理されません
return;
//画像がjpg/jpeg/gif/pngでない場合は処理されません
switch($imgType)
{
case 1:
$image = imagecreatefromgif($inImg);
$this->TextBgColor = " #ffffff"; //GIF 画像のフォントは黒のみなので、背景色は白に設定されます
break; :
$image = imagecreatefromjpeg($inImg);
break;
$image = imagecreatefrompng ($inImg);
デフォルト:
break; = @imagecolorallocate($image,hexdec(substr($this->TextColor,1,2)) ,hexdec(substr($this->TextColor,3,2)),hexdec(substr($this->TextColor,1,2) 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))); //背景色
//Fill 画像の背景色
@imagefill ($objTmpImg,0,0,$colorBg);元の画像を一時画像に
@imagecopy($objTmpImg,$image,0,0,0,0,$imgWidth ,$imgHeight);
//書き込むウォーターマークテキストオブジェクトを作成します
$objText = $this- >createText($this->Text);
//書き込むウォーターマークテキストの位置を計算
$y = $newHeight-5;
//テキストウォーターマークを書き込む
@imagettftext( $objTmpImg,10,0,$x,$y,$color,$this->Font,$objText);
//新しい画像、一時画像を生成
switch($imgType)
{
case 1:
imagegif ($objTmpImg,$tmpImg);
ケース 2:
imagejpeg($objTmpImg,$tmpImg);
デフォルト:
return; ;
break;
}
//リソースを解放
@imagedestroy($objTmpImg);
//ファイルの名前を変更します
if($this->OverFlag)
//元の画像
@unlink($inImg);
@rename($tmpImg,$outImg);
else
{
//元の画像を上書きしません
@rename($tmpImg,$outImg); }
//------------------------ -------------
//関数: 透かしテキストオブジェクトを作成する
//パラメータ: なし
//Return: 作成されたウォーターマーク テキスト オブジェクト
function createText($instring)
{
$outstring =""
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]
}
}
$outstring
}
}/ /class
;
http://www.bkjia.com/PHPjc/326177.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/326177.html
技術記事
例 1 次のコードをコピーします。 ?php Header("Content-type: image/png"); /*画像を出力することをブラウザに通知*/ $im = imagecreate(400, 300);画像のサイズ* /$gray = ImageCol...

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

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

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境
