この記事では、ThinkPHP でのウォーターマークの印刷とウォーターマークの位置の設定方法を主に紹介し、関連する操作手順と、thinkPHP の印刷とウォーターマークの設定の具体的な実装テクニックを例の形式で分析します。
## この記事では、ThinkPHP でウォーターマークを挿入する方法とウォーターマークの位置を設定する方法について説明します。詳細は以下のとおりです。 最近、Thinkphp の透かし機能を使用したところ、左下隅にしか印刷できないことがわかりました。 PHP のウォーターマークは依然として非常に簡単です。bool imagecopymerge ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h , int $pct )を使用して、座標が src_x、src_y から始まり、幅 src_w、高さ src_h の src_im イメージの一部を dst_im にコピーすることです。 src_im 画像の座標は dst_x と dst_y です。 2 つのイメージは、0 ~ 100 の範囲の pct に基づいて結合されます。 pct = 0 の場合、実際には何も行われません。100 の場合、この関数はパレット イメージの imagecopy() とまったく同じになります。トゥルーカラー イメージのアルファ透明度を実装します。 ウォーターマークのデモ画像: 画像の中央にウォーターマークを入れる必要があります。Thinkphp コードを確認してください。著者が実際に死ぬほど書いたことがわかりました。修正できるのは 1 つだけです。
/** * 为图片添加水印 * @static public * @param string $source 原文件名 * @param string $water 水印图片 * @param string $$savename 添加水印后的图片名 * @param string $postion 水印的具体位置 leftbottom rightbottom lefttop righttop center <新增> * @param string $alpha 水印的透明度 * @return void */ static public function water($source, $water, $savename=null,$postion="center", $alpha=80) { //检查文件是否存在 if (!file_exists($source) || !file_exists($water)) return false; //图片信息 $sInfo = self::getImageInfo($source); $wInfo = self::getImageInfo($water); //如果图片小于水印图片,不生成图片 if ($sInfo["width"] < $wInfo["width"] || $sInfo['height'] < $wInfo['height']) return false; //建立图像 $sCreateFun = "imagecreatefrom" . $sInfo['type']; $sImage = $sCreateFun($source); $wCreateFun = "imagecreatefrom" . $wInfo['type']; $wImage = $wCreateFun($water); //设定图像的混色模式 imagealphablending($wImage, true); //图像位置,默认为右下角右对齐 $posArr = $this->WaterPostion($postion,$sInfo,$wInfo); //新增 //生成混合图像 imagecopymerge($sImage, $wImage, $posArr[0], $posArr[1], 0, 0, $wInfo['width'], $wInfo['height'], $alpha); //输出图像 $ImageFun = 'Image' . $sInfo['type']; //如果没有给出保存文件名,默认为原图像名 if (!$savename) { $savename = $source; @unlink($source); } //保存图像 $ImageFun($sImage, $savename); imagedestroy($sImage); } private function WaterPostion($postion,$sInfo,$wInfo) { $posY = $sInfo["height"] - $wInfo["height"]; $posX = $sInfo["width"] - $wInfo["width"]; switch($postion) { case "rightbottom": return array($posX,$posY); break; case "leftbottom": return array($wInfo["width"],$posY); break; case "lefttop": return array($wInfo["width"],$wInfo["height"]); break; case "righttop": return array($posX,$wInfo["height"]); break; case "center": return array($posX/2,$posY/2); break; } }上記はこの記事の全内容です関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。 関連する推奨事項:
thinkphp を使用してクライアント IP を取得する方法
thinkphp フレームワークの追加および追加機能についてデータの表示方法
##
以上がThinkPHP ウォーターマークの分析とウォーターマーク位置の設定の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。