fck 上传图片增加水印代码修改_PHP教程
fck 上传图片增加水印代码修改//我们只要找到editor/filemanger/conectors/php/commands.php文件把下面这段php代码替换成你的commands.php文件就行了。
fck 上传图片增加水印代码修改
//我们只要找到editor/filemanger/conectors/php教程/commands.php教程文件把下面这段php代码替换成你的commands.php文件就行了。
function getfolders( $resourcetype, $currentfolder )
{
// map the virtual path to the local server path.
$sserverdir = servermapfolder( $resourcetype, $currentfolder, 'getfolders' ) ;
// array that will hold the folders names.
$afolders = array() ;
$ocurrentfolder = opendir( $sserverdir ) ;
while ( $sfile = readdir( $ocurrentfolder ) )
{
if ( $sfile != '.' && $sfile != '..' && is_dir( $sserverdir . $sfile ) )
$afolders[] = '
}
closedir( $ocurrentfolder ) ;
// open the "folders" node.
echo "
natcasesort( $afolders ) ;
foreach ( $afolders as $sfolder )
echo $sfolder ;
// close the "folders" node.
echo "" ;
}
function getfoldersandfiles( $resourcetype, $currentfolder )
{
// map the virtual path to the local server path.
$sserverdir = servermapfolder( $resourcetype, $currentfolder, 'getfoldersandfiles' ) ;
// arrays that will hold the folders and files names.
$afolders = array() ;
$afiles = array() ;
$ocurrentfolder = opendir( $sserverdir ) ;
while ( $sfile = readdir( $ocurrentfolder ) )
{
if ( $sfile != '.' && $sfile != '..' )
{
if ( is_dir( $sserverdir . $sfile ) )
$afolders[] = '
else
{
$ifilesize = @filesize( $sserverdir . $sfile ) ;
if ( !$ifilesize ) {
$ifilesize = 0 ;
}
if ( $ifilesize > 0 )
{
$ifilesize = round( $ifilesize / 1024 ) ;
if ( $ifilesize }
$afiles[] = '
}
}
}
// send the folders
natcasesort( $afolders ) ;
echo '
foreach ( $afolders as $sfolder )
echo $sfolder ;
echo '' ;
// send the files
natcasesort( $afiles ) ;
echo '
foreach ( $afiles as $sfiles )
echo $sfiles ;
echo '' ;
}
function createfolder( $resourcetype, $currentfolder )
{
if (!isset($_get)) {
global $_get;
}
$serrornumber = '0' ;
$serrormsg = '' ;
if ( isset( $_get['newfoldername'] ) )
{
$snewfoldername = $_get['newfoldername'] ;
$snewfoldername = sanitizefoldername( $snewfoldername ) ;
if ( strpos( $snewfoldername, '..' ) !== false )
$serrornumber = '102' ; // invalid folder name.
else
{
// map the virtual path to the local server path of the current folder.
$sserverdir = servermapfolder( $resourcetype, $currentfolder, 'createfolder' ) ;
if ( is_writable( $sserverdir ) )
{
$sserverdir .= $snewfoldername ;
$serrormsg = createserverfolder( $sserverdir ) ;
switch ( $serrormsg )
{
case '' :
$serrornumber = '0' ;
break ;
case 'invalid argument' :
case 'no such file or directory' :
$serrornumber = '102' ; // path too long.
break ;
default :
$serrornumber = '110' ;
break ;
}
}
else
$serrornumber = '103' ;
}
}
else
$serrornumber = '102' ;
// create the "error" node.
echo '
}
function fileupload( $resourcetype, $currentfolder, $scommand )
{
if (!isset($_files)) {
global $_files;
}
$serrornumber = '0' ;
$sfilename = '' ;
if ( isset( $_files['newfile'] ) && !is_null( $_files['newfile']['tmp_name'] ) )
{
global $config ;
$ofile = $_files['newfile'] ;
// map the virtual path to the local server path.
$sserverdir = servermapfolder( $resourcetype, $currentfolder, $scommand ) ;
// get the uploaded file name.
$sfilename = $ofile['name'] ;
$sfilename = sanitizefilename( $sfilename ) ;
$soriginalfilename = $sfilename ;
// get the extension.
$sextension = substr( $sfilename, ( strrpos($sfilename, '.') + 1 ) ) ;
$sextension = strtolower( $sextension ) ;
if ( isset( $config['secureimageuploads'] ) )
{
if ( ( $isimagevalid = isimagevalid( $ofile['tmp_name'], $sextension ) ) === false )
{
$serrornumber = '202' ;
}
}
if ( isset( $config['htmlextensions'] ) )
{
if ( !ishtmlextension( $sextension, $config['htmlextensions'] ) &&
( $detecthtml = detecthtml( $ofile['tmp_name'] ) ) === true )
{
$serrornumber = '202' ;
}
}
// check if it is an allowed extension.
if ( !$serrornumber && isallowedext( $sextension, $resourcetype ) )
{
$icounter = 0 ;
while ( true )
{
$sfilepath = $sserverdir . $sfilename ;
//$sfilepath =$sserverdir.time().$sextension;
if ( is_file( $sfilepath ) )
{
$icounter++ ;
$sfilename = removeextension( $soriginalfilename ) . '(' . $icounter . ').' . $sextension ;
$serrornumber = '201' ;
}
else
{
move_uploaded_file( $ofile['tmp_name'], $sfilepath ) ;
if ( is_file( $sfilepath ) )
{
if ( isset( $config['chmodonupload'] ) && !$config['chmodonupload'] )
{
break ;
}
$permissions = 0777;
if ( isset( $config['chmodonupload'] ) && $config['chmodonupload'] )
{
$permissions = $config['chmodonupload'] ;
}
$oldumask = umask(0) ;
chmod( $sfilepath, $permissions ) ;
umask( $oldumask ) ;
}
break ;
}
}
//增加水印
// add start
$waterimg="php100.com.png"; //水印图片 这里修改你的水印图片所在的地址
if($watermark==1)
{
$image_size = getimagesize($sfilepath);
$iinfo=getimagesize($sfilepath,$iinfo);
$nimage=imagecreatetruecolor($image_size[0],$image_size[1]);
$white=imagecolorallocate($nimage,255,255,255);
$black=imagecolorallocate($nimage,0,0,0);
$red=imagecolorallocate($nimage,255,0,0);
imagefill($nimage,0,0,$white);
switch ($iinfo[2])
{
case 1:
$simage =imagecreatefromgif($sfilepath);
break;
case 2:
$simage =imagecreatefromjpeg($sfilepath);
break;
case 3:
$simage =imagecreatefrompng($sfilepath);
break;
// case 6:
// $simage =imagecreatefromwbmp($sfilepath);
// break;
default:
die("不支持的文件类型");
exit;
}
imagecopy($nimage,$simage,0,0,0,0,$image_size[0],$image_size[1]);
switch($watertype)
{
case 1: //加水印字符串
imagestring($nimage,2,3,$image_size[1]-15,$waterstring,$black);
break;
case 2: //加水印图片
$simage1 =imagecreatefrompng($waterimg);
imagecopy($nimage,$simage1,$image_size[0]/2,$image_size[0]/2,0,0,240,65);
imagedestroy($simage1);
break;
}
switch ($iinfo[2])
{
case 1:
imagegif($nimage, $sfilepath);
// imagejpeg($nimage, $sfilepath);
break;
case 2:
imagejpeg($nimage, $sfilepath);
break;
case 3:
imagepng($nimage, $sfilepath);
break;
// case 6:
// imagewbmp($nimage, $sfilepath);
// //imagejpeg($nimage, $sfilepath);
// break;
}
//覆盖原上传文件
imagedestroy($nimage);
imagedestroy($simage);
}
//增加水印结果
if ( file_exists( $sfilepath ) )
{
//previous checks failed, try once again
if ( isset( $isimagevalid ) && $isimagevalid === -1 && isimagevalid( $sfilepath, $sextension ) === false )
{
@unlink( $sfilepath ) ;
$serrornumber = '202' ;
}
else if ( isset( $detecthtml ) && $detecthtml === -1 && detecthtml( $sfilepath ) === true )
{
@unlink( $sfilepath ) ;
$serrornumber = '202' ;
}
}
}
else
$serrornumber = '202' ;
}
else
$serrornumber = '202' ;
$sfileurl = combinepaths( getresourcetypepath( $resourcetype, $scommand ) , $currentfolder ) ;
$sfileurl = combinepaths( $sfileurl, $sfilename ) ;
senduploadresults( $serrornumber, $sfileurl, $sfilename ) ;
exit ;
}?>

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

뜨거운 주제











1. 먼저 딩톡을 실행하세요. 2. 그룹 채팅을 열고 오른쪽 상단에 있는 점 3개를 클릭하세요. 3. 이 그룹에서 내 닉네임을 찾아보세요. 4. 입력하여 수정하고 저장하려면 클릭하세요.

소셜 미디어의 지속적인 발전으로 Xiaohongshu는 점점 더 많은 젊은이들이 자신의 삶을 공유하고 아름다운 것을 발견할 수 있는 플랫폼이 되었습니다. 많은 사용자들이 이미지 게시 시 자동 저장 문제로 고민하고 있습니다. 그렇다면 이 문제를 해결하는 방법은 무엇입니까? 1. Xiaohongshu에 게시할 때 사진이 자동으로 저장되는 문제를 해결하는 방법은 무엇입니까? 1. 캐시 지우기 먼저 Xiaohongshu의 캐시 데이터를 지워볼 수 있습니다. 단계는 다음과 같습니다. (1) Xiaohongshu를 열고 오른쪽 하단에 있는 "내" 버튼을 클릭합니다. (2) 개인 센터 페이지에서 "설정"을 찾아 클릭합니다. 캐시 지우기' 옵션을 선택하고 확인을 클릭하세요. 캐시를 삭제한 후 샤오홍슈에 다시 진입하여 사진을 올려 자동 저장 문제가 해결되었는지 확인해 보세요. 2. Xiaohongshu 버전을 업데이트하여 Xiaohongshu를 확인하세요.

MeituXiuXiu에 워터마크를 추가하는 방법을 알고 싶으십니까? Meitu Xiuxiu는 사진을 잘라내어 다른 사진에 배치, 사진 크기를 kb 단위로 변경, 워터마크 제거, 신분증 사진의 배경색 변경, 시간 추가 등의 기능을 제공하는 매우 사용하기 쉬운 사진 편집 소프트웨어입니다. , 날짜 및 위치 워터마크를 전체 화면에 표시하여 사용자가 사진 제작을 빠르게 완료할 수 있도록 도와줍니다. 일부 사용자는 자신의 사진을 만들어 다른 사람이 훔치는 것을 원하지 않지만 자신의 워터마크로 덮고 싶지만 어떻게 해야 할지 모르시나요? 이제 편집자가 아름다운 사진에 워터마크를 추가하는 방법을 알려드리겠습니다! 마음에 드신다면 오셔서 다운로드 받으세요! 1. Meitu Xiuxiu에 워터마크를 추가하는 방법은 무엇입니까? 아름다운 사진에 워터마크를 추가하는 방법을 공유해보세요! 1. 이 사이트에서 다운로드한 Meitu Xiu Xiu 2023 버전을 엽니다. Meitu Xiu Xiu 2023 버전 카테고리: 사진 및 미화 Meitu Xiu Xiu 2023 버전은 기능이 풍부한 사진 미화 및 편집 소프트웨어 다운로드

찍은 사진을 더욱 개인화되고 독특하게 만들기 위해 Xiaomi Mi 14는 사진 워터마크 설정을 제공합니다. 사진 워터마크를 설정하면 사용자는 자신이 찍은 사진에 패턴, 텍스트, 로고를 추가할 수 있어 각 사진이 소중한 순간과 추억을 더 잘 기록할 수 있습니다. 다음으로 Xiaomi 14에서 사진 워터마크를 설정하여 사진을 더욱 개인화되고 생생하게 만드는 방법을 소개하겠습니다. Xiaomi Mi 14에서 사진 워터마크를 설정하는 방법은 무엇입니까? 1. 먼저 '카메라'를 클릭하세요. 2. 그런 다음 "설정"을 클릭합니다. 3. 그런 다음 워터마크를 찾으면 촬영을 시작할 수 있습니다.

Douyin 짧은 동영상의 인기로 인해 댓글 영역의 사용자 상호 작용이 더욱 다채로워졌습니다. 일부 사용자는 자신의 의견이나 감정을 더 잘 표현하기 위해 댓글로 이미지를 공유하기를 원합니다. 그렇다면 TikTok 댓글에 사진을 게시하는 방법은 무엇입니까? 이 기사에서는 이 질문에 대해 자세히 답변하고 몇 가지 관련 팁과 예방 조치를 제공합니다. 1. Douyin 댓글에 사진을 어떻게 게시하나요? 1. Douyin 열기: 먼저 Douyin 앱을 열고 계정에 로그인해야 합니다. 2. 댓글 영역 찾기: 짧은 동영상을 탐색하거나 게시할 때 댓글을 달고 싶은 위치를 찾아 "댓글" 버튼을 클릭하세요. 3. 댓글 내용 입력: 댓글 영역에 댓글 내용을 입력합니다. 4. 사진 전송 선택: 댓글 내용 입력 인터페이스에 "사진" 버튼 또는 "+" 버튼이 표시됩니다.

1. WPS를 사용하여 문서를 엽니다. 문서에 워터마크가 있습니다. 어떻게 제거하나요? 아래를보세요. 2. 메뉴 표시줄에서 삽입 탭을 찾아 이 탭 아래에 있는 머리글 및 바닥글 아이콘을 선택한 후 마우스 왼쪽 버튼으로 클릭하세요. 3. 이때 페이지의 텍스트는 회색이 되어 편집이 불가능하지만, 텍스트 뒷면의 워터마크는 이때 편집이 가능합니다. 4. 워터마크를 클릭하면 사진 주위에 여러 개의 작은 사각형이 있고 이때 사진을 편집할 수 있으므로 이것이 사진 워터마크임을 알 수 있습니다. 5. 키보드의 삭제 키를 이용해 사진을 삭제하면 워터마크가 사라진 것을 확인할 수 있습니다. 6. 페이지 위에서 마우스를 더블클릭하면 머리글 및 바닥글 편집 모드가 종료됩니다. 페이지의 텍스트는 원래 색상으로 돌아가서 편집할 수 있지만, 이때 페이지의 워터마크는 사라졌습니다. 7.

파워포인트에서는 그림을 하나씩 표시하는 것이 일반적인 기술인데, 이는 애니메이션 효과를 설정하면 가능하다. 이 가이드에서는 기본 설정, 이미지 삽입, 애니메이션 추가, 애니메이션 순서 및 타이밍 조정 등 이 기술을 구현하는 단계를 자세히 설명합니다. 또한 트리거 사용, 애니메이션 속도 및 순서 조정, 애니메이션 효과 미리보기 등의 고급 설정 및 조정이 제공됩니다. 이러한 단계와 팁을 따르면 사용자는 PowerPoint에서 그림이 차례로 표시되도록 쉽게 설정할 수 있으므로 프레젠테이션의 시각적 효과가 향상되고 청중의 관심을 끌 수 있습니다.

win1124H2 오른쪽 하단에 있는 평가판 텍스트를 제거하는 방법은 무엇입니까? 시스템을 사용할 때 바탕 화면의 오른쪽 하단에 투명한 워터마크가 표시되는 경우가 있습니다. 그러면 이 투명한 워터마크를 어떻게 제거합니까? 사용자는 타사 소프트웨어를 직접 사용하여 작동할 수 있습니다. 이 사이트에서는 win1124H2 평가판의 워터마크를 제거하는 방법을 사용자에게 주의 깊게 소개합니다. win1124H2 평가판의 워터마크를 제거하려면 UniversalWatermarkDisabler 도구를 다운로드하세요. 실행 후 현재 시스템 버전과 워터마크 상태가 표시됩니다. "상태"에 "설치 준비 완료"가 표시되면 제거할 수 있습니다.
