테스트 사이트 - 개발 중인 베타 버전입니다

워터마크 png파일 적용 채택완료

발롱도르 6년 전 조회 3,611

안녕하세요

 

https://sir.kr/g5_tip/2896">https://sir.kr/g5_tip/2896 워터마크를 적용해서 사용중인데

 

gif 파일만 적용되고 png는 적용이되지않고있습니다.

 

png파일도 워터마크에 삽입되게 할수있는 방법좀 알려주세요 ㅜㅜ

 

</p>

<p>write_update.skin.php ---------------



<?

if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가



//워터마크 넣기

//png는 안됨, jpg 원본 사용해야함

//$transparency 워터마크 투명도

//$jpegQuality 화질



if ($mark == 1){ //

function waterMark($fileInHD, $wmFile, $transparency = 90, $jpegQuality = 90) {

 $wmImg  = imageCreateFromGIF($wmFile);

 $jpegImg = imageCreateFromJPEG($fileInHD);

$wmX=imageSX($jpegImg) - imageSX($wmImg);

$wmY=imageSY($jpegImg) - imageSY($wmImg);

 imageCopyMerge($jpegImg, $wmImg, $wmX, $wmY, 0, 0, imageSX($wmImg), imageSY($wmImg), $transparency);

 ImageJPEG($jpegImg, $fileInHD, $jpegQuality);

}



$data_path = G5_PATH."/data/file/$bo_table"; //서버경로임

$thumb_path = $data_path.'/thumb';



    $sql=" select * from $g5[board_file_table] where  bo_table = '$bo_table' and wr_id = '$wr_id' order by bf_no asc";

    $results = sql_query($sql);

    for ($i=0; $row=sql_fetch_array($results); $i++)  {

$file = $data_path .'/'. $row[bf_file];





if ($_FILES[bf_file][name][$i]){

waterMark($file,$board_skin_path."/img/logo_mark.gif");  // 요거 추가됨 윈본이미지우측하단에 로고를 붙이자, gif 만 됨

}



if ($i==0 && $_FILES[bf_file][name][0]){

    if (preg_match("/\.(jp[e]?g|gif|png)$/i", $file))    {

        $size = getimagesize($file);

        if ($size[2] == 1)

            $src = imagecreatefromgif($file);

        else if ($size[2] == 2)

            $src = imagecreatefromjpeg($file);

        else if ($size[2] == 3)

            $src = imagecreatefrompng($file);



        $rate = $board[bo_1] / $size[0];

        $height = (int)($size[1] * $rate);



        @unlink($thumb_path.'/'.$wr_id);

        $dst = imagecreatetruecolor($board[bo_1], $height);

        imagecopyresampled($dst, $src, 0, 0, 0, 0, $board[bo_1], $height, $size[0], $size[1]);

        imagepng($dst, $thumb_path.'/'.$wr_id, $board[bo_2]);

        chmod($thumb_path.'/'.$wr_id, 0606);

}

}

}

} //

?>



write.skin.php -------------



<input type="checkbox" name="mark" value="1"/> 워터마킹하기</p>

<p>

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

하틴
6년 전

waterMark($file,$board_skin_path."/img/logo_mark.gif");  // 요거 추가됨 윈본이미지우측하단에 로고를 붙이자, gif 만 됨 

 

여기 아래에 

 

waterMark($file,$board_skin_path."/img/logo_mark.png");  // 요거 추가됨 윈본이미지우측하단에 로고를 붙이자, gif 만 됨

 

이렇게 추가해주시면 안되나요?

로그인 후 평가할 수 있습니다

답변에 대한 댓글 5개

발롱도르
6년 전
그렇게 추가를 하면되긴하는데 누끼딴 png 이미지를 올려도 투명도 때문인지 투명 부분에 어둡게 색상이 들어가져요ㅜㅜ배경에다가 png 파일(텍스트로고)을 올려야되는것인데 ㅜㅜ

투명도없이 그냥 원본만 딱 얹을수없을까요?
하틴
6년 전
음..그러면 워터마크를 png파일 일때는 다른 워터마크가 박히게 하면 되지않을까요?
발롱도르
6년 전
아니요..워터마크가 png파일이라는 말이에요 그래서 워터마크가 투명도 적용안되고 그냥 원본이 적용되게 할수는없을까요?
하틴
6년 전
음..정리하자면 gif파일에 워터마크가 박히면 배경색이 있어서 워터마크가 잘 나오는데
png파일에는 배경색이 없어서 워터마크가 잘 안보인다는 말씀이신거죠?

워터마크가 원본이 투명인데 투명도가 적용안되게 하실려면
투명도가 없는 워터마크를 별도로 넣어서 if문을 이용해서

png파일일때는 투명도가 없는 워터마크가 찍히게하면 되지 않을까요?
발롱도르
6년 전
제가 초보라서 어떻게 if문으로 주면될까요?ㅜㅜ 아직도 해결못하구있어요..

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인