이 글은 ThinkPHP에서 워터마크를 인쇄하고 워터마크 위치를 설정하는 방법을 주로 소개하며, thinkPHP의 워터마크 인쇄 및 설정과 관련된 작업 단계와 구체적인 구현 기술을 예제 형식으로 분석합니다.
최근 사용 중인 Thinkphp to print 워터마크 기능은 왼쪽 하단에만 배치할 수 있는 것으로 나타났습니다. PHP 워터마킹 기능은 매우 쉽습니다.
코드 복사를 사용하는 것입니다. 코드는 다음과 같습니다.
bool imagecopymerge (resource $dst_im , resources $src_im , int $dst_x , int $dst_y , int $src_x , int $ src_y , int $src_w , int $src_h , int $pct )
src_im 이미지에서 좌표가 src_x, src_y에서 시작하고 너비가 src_w, 높이가 src_h인 부분을 위치에 복사합니다. 좌표가 dst_x 및 dst_y인 dst_im 이미지. 두 이미지는 0~100 범위의 pct를 기준으로 병합됩니다. pct = 0이면 실제로는 아무 작업도 수행하지 않습니다. 100이면 이 함수는 팔레트 이미지의 imagecopy()와 정확히 동일하며 트루컬러 이미지에 대한 알파 투명도를 구현합니다.
워터마크 데모 사진:
사진 중앙에 워터마크를 넣어야 하는데 Thinkphp 코드를 확인해보세요. 실제로 저자가 죽을 때까지 썼다는 것을 알게 되었고, 수정은 한 번밖에 할 수 없었습니다
/** * 为图片添加水印 * @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 구현
php메서드를 구현하여 파일 업로드, 다운로드 및 삭제
위 내용은 ThinkPHP에서 워터마킹 방법 및 워터마크 위치 설정 방법(예시 분석)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!