워터마크 png파일 적용

워터마크 png파일 적용

QA

워터마크 png파일 적용

본문

안녕하세요

 

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

 

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

 

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

 


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"/> 워터마킹하기

이 질문에 댓글 쓰기 :

답변 1

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

 

여기 아래에 

 

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

 

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

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

투명도없이 그냥 원본만 딱 얹을수없을까요?

음..정리하자면 gif파일에 워터마크가 박히면 배경색이 있어서 워터마크가 잘 나오는데
png파일에는 배경색이 없어서 워터마크가 잘 안보인다는 말씀이신거죠?

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

png파일일때는 투명도가 없는 워터마크가 찍히게하면 되지 않을까요?

답변을 작성하시기 전에 로그인 해주세요.
전체 66
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT