Kindeditor 편집기에 이미지 업로드 워터마크 구현 방법 추가
이 글은 Kindeditor 에디터 플러스 이미지 업로드 워터마크 기능을 주로 소개합니다. 관심있는 친구들이 참고하시면 도움이 될 것 같습니다.
KindEditor는 오픈 소스 온라인 HTML 편집기입니다. 개발자는 KindEditor를 사용하여 기존의 여러 줄 텍스트 입력 상자(텍스트 영역)를 시각적인 서식 있는 텍스트 입력 상자로 바꿀 수 있습니다. Java, .NET, PHP, ASP 및 기타 프로그램과 원활하게 통합될 수 있으며 CMS, 쇼핑몰, 포럼, 블로그, Wiki 및 이메일과 같은 인터넷 응용 프로그램에서 사용하기에 더 적합합니다.
주요 기능:
빠름: 작은 크기, 빠른 로딩 속도
오픈 소스: 오픈 소스 코드, 높은 수준, 고품질
하단 레이어: 내장 사용자 정의 DOM 클래스 라이브러리, 정확한 DOM 작동
확장: 플러그 -인 기반 디자인, 모든 기능은 플러그인이며 필요에 따라 추가 또는 삭제할 수 있습니다
스타일: 편집기 스타일을 수정하는 것은 매우 쉽습니다. CSS 파일만 수정하면 됩니다.
호환성: 다음과 같은 대부분의 주류 브라우저를 지원합니다. IE, Firefox, Safari, Chrome, Opera
기본 편집기에서 이미지를 업로드할 때 워터마크 기능이 없습니다. 자세한 소개는 다음과 같습니다.
1단계: upload_json.php 파일 수정
편집기의 /php/ 디렉토리에서 할 수 있습니다. 이 파일을 찾아 함수를 추가하세요.
/* * 功能:PHP图片水印,水印支持图片或文字 * 参数: * $groundImage 背景图片,即需要加水印的图片,暂只支持GIF,JPG,PNG格式; * $waterPos 水印位置,有10种状态,0为随机位置; * 1为顶端居左,2为顶端居中,3为顶端居右; * 4为中部居左,5为中部居中,6为中部居右; * 7为底端居左,8为底端居中,9为底端居右; * $waterImage 图片水印,即作为水印的图片,暂只支持GIF,JPG,PNG格式; * $alpha 水印透明度,取值1-100; * $waterText 文字水印,即把文字作为为水印,支持ASCII码,不支持中文; * $textFont 文字大小,值为1、2、3、4或5,默认为5; * $textColor 文字颜色,值为十六进制颜色值,默认为#FF0000(红色); * * $waterImage 和 $waterText 最好不要同时使用,选其中之一即可,优先使用 $waterImage。 * 当$waterImage有效时,参数$waterString、$stringFont、$stringColor均不生效。 * 加水印后的图片的文件名和 $groundImage 一样。 */ function imageWaterMark($groundImage, $waterPos=0, $waterImage='', $alpha=80, $waterText='', $water_fontfile, $textFont=9, $textColor='#FF0000'){ $isWaterImage = FALSE; $formatMsg = '不支持该图片格式!请使用GIF、JPG、PNG格式的图片。'; $fontFile = $water_fontfile; //读取水印文件 if(!empty($waterImage) && file_exists($waterImage)){ $isWaterImage = TRUE; $water_info = getimagesize($waterImage); $water_w = $water_info[0];//取得水印图片的宽 $water_h = $water_info[1];//取得水印图片的高 switch($water_info[2]){//取得水印图片的格式 case 1:$water_im = imagecreatefromgif($waterImage);break; case 2:$water_im = imagecreatefromjpeg($waterImage);break; case 3:$water_im = imagecreatefrompng($waterImage);break; default:die($formatMsg); } } //读取背景图片 if(!empty($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; default:die($formatMsg); } }else{ alert("水印图片不存在!"); } //水印位置 if($isWaterImage){//图片水印 $w = $water_w; $h = $water_h; $label = "图片的"; }else{//文字水印 $temp = imagettfbbox($textFont, 0, $fontFile, $waterText);//取得使用 TrueType 字体的文本的范围 $w = $temp[2] - $temp[6]; $h = $temp[3] - $temp[7]; unset($temp); $label = "文字区域"; } if(($ground_w<$w) || ($ground_h<$h)){ echo "需要加水印的图片的长度或宽度比水印".$label."还小,无法生成水印!"; return; } switch($waterPos){ case 0://随机 $posX = rand(0,($ground_w - $w)); $posY = rand(0,($ground_h - $h)); break; case 1://1为顶端居左 $posX = 0; $posY = 0; break; case 2://2为顶端居中 $posX = ($ground_w - $w) / 2; $posY = 0; break; case 3://3为顶端居右 $posX = $ground_w - $w; $posY = 0; break; case 4://4为中部居左 $posX = 0; $posY = ($ground_h - $h) / 2; break; case 5://5为中部居中 $posX = ($ground_w - $w) / 2; $posY = ($ground_h - $h) / 2; break; case 6://6为中部居右 $posX = $ground_w - $w; $posY = ($ground_h - $h) / 2; break; case 7://7为底端居左 $posX = 0; $posY = $ground_h - $h; break; case 8://8为底端居中 $posX = ($ground_w - $w) / 2; $posY = $ground_h - $h; break; case 9://9为底端居右 $posX = $ground_w - $w; $posY = $ground_h - $h; if(!$isWaterImage){ $posY = $ground_h - $h-20; } break; default://随机 $posX = rand(0,($ground_w - $w)); $posY = rand(0,($ground_h - $h)); break; } //设定图像的混色模式 imagealphablending($ground_im, true); if($isWaterImage){//图片水印 //imagecopy($ground_im, $water_im, $posX, $posY, 0, 0, $water_w,$water_h);//拷贝水印到目标文件 //生成混合图像 imagecopymerge($ground_im, $water_im, $posX, $posY, 0, 0, $water_w, $water_h, $alpha); } else {//文字水印 if( !empty($textColor) && (strlen($textColor)==7)){ $R = hexdec(substr($textColor,1,2)); $G = hexdec(substr($textColor,3,2)); $B = hexdec(substr($textColor,5)); } 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; case 2:imagejpeg($ground_im,$groundImage,100);break;//注意这里的100,经测试,100是图片质量最佳的,但文件大小会增加很多,95的时候质量还不错,大小和原来的差不多。作者采用95的值。 case 3:imagepng($ground_im,$groundImage);break; default:die($errorMsg); } //释放内存 if(isset($water_info)) unset($water_info); if(isset($water_im)) imagedestroy($water_im); unset($ground_info); imagedestroy($ground_im); }
2단계: Find $json = new Services_JSON(); , 경고 기능에 있는 것이 아닌 다음 코드를 추가하십시오:
/* 水印配置开始 */ $water_mark = 1;//1为加水印, 其它为不加 $water_pos = 9;//水印位置,10种状态【0为随机,1为顶端居左,2为顶端居中,3为顶端居右;4为中部居左,5为中部居中,6为中部居右;7为底端居左,8为底端居中,9为底端居】 $water_img = $_SERVER['DOCUMENT_ROOT'].'/upfiles/water.gif';//水印图片,默认填写空,请将图片上传至网站根目录的upfiles下,例: water.gif $water_alpha = 50;//水印透明度 $water_text = '';//水印字符串,默认填写空; //$water_fontfile = $_SERVER['DOCUMENT_ROOT'] .'/upfiles/fonts/arial.ttf';//文字水印使用的字体; if($water_mark == 1){ imageWaterMark($file_path, $water_pos, $water_img, $water_alpha, $water_text, $water_fontfile); } /* 水印配置结束 */
테스트 후에는 정상적으로 사용할 수 있습니다. 또 다른 점은 워터마크 이미지의 경로가 실제에 따라 달라지므로 주의하시기 바랍니다. 상황.
관련 권장사항:
PHP는 워터마크를 추가하고 썸네일을 생성할 수 있는 처리 도구를 구현합니다.
PHP는 이미지의 색상 영역 위치에 따라 워터마크를 추가합니다.
위 내용은 Kindeditor 편집기에 이미지 업로드 워터마크 구현 방법 추가의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 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
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











파일을 전송하는 동안 문제가 발생하여 그렇게 할 수 없었던 적이 있습니까? 최근 많은 Windows 사용자들이 파일을 폴더에 복사하고 붙여넣는 동안 "대상 폴더의 파일 이름이 너무 깁니다"라는 오류가 발생하는 문제에 직면했다고 보고했습니다. 또한 일부 다른 Windows 사용자는 파일을 열 때 "파일 이름이나 확장자가 너무 길어" 파일을 열 수 없다는 불만을 표시했습니다. 이는 파일을 다른 폴더로 전송할 수 없도록 하여 사용자를 실망시킵니다. 문제를 분석하는 동안 문제를 완화하고 사용자가 파일을 쉽게 전송할 수 있도록 하는 일련의 솔루션을 생각해 냈습니다. 비슷한 상황에 처한 경우 자세한 내용은 이 게시물을 참조하세요. 출처: https

최근 많은 Windows 사용자들은 Windows Defender SmartScreen이 사용자에게 Microsoft Windows에서 인식되지 않는 응용 프로그램을 시작하지 말라고 경고하고 매번 "어쨌든 실행" 옵션을 클릭해야 했을 때 짜증이 났다고 보고했습니다. Windows 사용자는 이를 방지하거나 비활성화하기 위해 현재 무엇을 할 수 있는지 확신하지 못합니다. 문제를 조사한 결과 설정 응용 프로그램이나 로컬 그룹 정책 편집기를 통해 또는 레지스트리 파일을 조정하여 시스템의 Windows Defender 기능을 비활성화할 수 있음을 발견했습니다. 이렇게 하면 사용자는 더 이상 수비수 SmartScreen을 마주할 필요가 없습니다. 시스템에서도 다음과 같은 문제가 발생하는 경우

통합 개발 환경(IDE)을 사용하는 것보다 Python 코드를 작성하는 더 좋은 방법은 없습니다. 작업을 더욱 단순하고 논리적으로 만들 수 있을 뿐만 아니라 프로그래밍 경험과 효율성도 향상시킬 수 있습니다. 모두가 이것을 알고 있습니다. 문제는 수많은 옵션 중에서 최고의 Python 개발 환경을 선택하는 방법입니다.

FastAPI에서 파일 업로드 및 처리를 구현하는 방법 FastAPI는 사용하기 쉽고 강력한 최신 고성능 웹 프레임워크로 파일 업로드 및 처리를 기본적으로 지원합니다. 이 기사에서는 FastAPI 프레임워크에서 파일 업로드 및 처리 기능을 구현하는 방법을 알아보고 특정 구현 단계를 설명하는 코드 예제를 제공합니다. 먼저, 필수 라이브러리와 모듈을 가져와야 합니다: fromfastapiimportFastAPI,UploadF

C 언어는 프로그래밍의 기초이자 중요한 언어입니다. 초보자에게는 적절한 프로그래밍 소프트웨어를 선택하는 것이 매우 중요합니다. 시중에는 다양한 C 프로그래밍 소프트웨어 옵션이 있지만 초보자에게는 자신에게 적합한 것을 선택하는 것이 다소 혼란스러울 수 있습니다. 이 기사에서는 초보자가 빠르게 시작하고 프로그래밍 기술을 향상하는 데 도움이 되는 다섯 가지 C 언어 프로그래밍 소프트웨어를 추천합니다. Dev-C++Dev-C++는 특히 초보자에게 적합한 무료 오픈 소스 통합 개발 환경(IDE)입니다. 간단하고 사용하기 쉬운 통합 편집기,

Win10 컴퓨터의 느린 업로드 속도를 해결하는 방법은 무엇입니까? 컴퓨터를 사용하다 보면 우리 컴퓨터의 파일 업로드 속도가 매우 느리다는 것을 느낄 수 있습니다. 그렇다면 현재 상황은 어떠한가요? 사실 이는 컴퓨터의 기본 업로드 속도가 20%이기 때문에 업로드 속도가 매우 느려지기 때문입니다. 많은 친구들이 C 드라이브를 포맷하는 단계를 자세히 정리했습니다. 아래 Win11에 관심이 있으시면 아래를 살펴보세요! Win10의 느린 업로드 속도에 대한 해결 방법 1. win+R을 눌러 실행을 호출하고 gpedit.msc를 입력한 후 Enter를 누릅니다. 2. 관리 템플릿을 선택하고 네트워크--Qos 패킷 스케줄러를 클릭한 다음 제한을 두 번 클릭하여 대역폭을 예약합니다. 3. 활성화됨을 선택하면

디지털 시대가 도래하면서 음악 플랫폼은 사람들이 음악을 얻는 주요 수단 중 하나가 되었습니다. 하지만 가끔 노래를 듣다 보면 가사가 없다는 것을 발견하게 되는데, 이는 매우 혼란스럽습니다. 많은 사람들은 노래를 들을 때 가사가 표시되어 노래의 내용과 감정을 더 잘 이해할 수 있기를 바랍니다. 중국 최대 음악 플랫폼 중 하나인 QQ 뮤직은 사용자에게 가사 업로드 기능을 제공하여 사용자가 음악을 더 잘 즐기고 노래의 의미를 느낄 수 있도록 합니다. QQ뮤직에 가사를 업로드하는 방법은 다음과 같습니다. 첫 번째

1. Kugou Music을 열고 프로필 사진을 클릭하세요. 2. 오른쪽 상단의 설정 아이콘을 클릭하세요. 3. [음악작품 업로드]를 클릭하세요. 4. [작품 업로드]를 클릭하세요. 5. 노래를 선택하고 [다음]을 클릭하세요. 6. 마지막으로 [업로드]를 클릭하세요.
