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

워터마크이용시 용량이 늘어나나요?

· 13년 전 · 1588 · 2
안녕하세요^^


사진에 워터마크를 적용할 경우 업로드된 파일외에

워터마크가 적용된 사진도 동시에 저장되는 건가요?


즉, 서버에 2장의 사진(원본 및 워터마크적용사진)이 저장되는것인지요??


답변 꼭 부탁드립니다~~








워터마크 소스는 아래와 같습니다..





$wmFile = $g4[path]."/img/Watermark.gif"; // 워터마크 이미지 주소

$data_path = $g4[path]."/data/file/$bo_table";
$thumb_path = $data_path.'/thumb';

$sql2=" select * from $g4[board_file_table] where bo_table = '$bo_table' and wr_id = '$wr_id' order by bf_no asc";
$results2 = sql_query($sql2);
for ($d=0; $row2=sql_fetch_array($results2); $d++) {

if ($_FILES[bf_file][name][$d])
{
$file = $data_path .'/'. $row2[bf_file];
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);
else
break;

$rate = $board[bo_image_width] / $size[0]; // 리사이즈를 원치않으면 여기서부터~~~
$height = (int)($size[1] * $rate);

if ($size[0] > $board[bo_image_width]){

@unlink($data_path.'/'.$row2[bf_file]);
$dst = imagecreatetruecolor($board[bo_image_width], $height);
imagecopyresampled($dst, $src, 0, 0, 0, 0, $board[bo_image_width], $height, $size[0], $size[1]);
//imagejpeg($dst, $data_path.'/'.$row2[bf_file], $board[bo_2]); //혹 업로드 이미지 깨지면 여긴 주석처리하시고 바로 아래 껄 이용하세요..
imagepng($dst, $data_path.'/'.$row2[bf_file], $board[bo_2]); //주석 해제
chmod($data_path.'/'.$row2[bf_file], 0606);

$temp = @getimagesize(addslashes($file));

}
// 리사이즈를 원치않으면 여기까지 삭제 & 주석처리하면 됨.


$wmImg = imageCreateFromGIF($wmFile);
$size = getimagesize($file);
if ($size[2] == 1)
$jpegImg = imagecreatefromgif($file);
else if ($size[2] == 2)
$jpegImg = imagecreatefromjpeg($file);
else if ($size[2] == 3)
$jpegImg = imagecreatefrompng($file);
else
break;

$wmX=imageSX($jpegImg) - imageSX($wmImg);
$wmY=imageSY($jpegImg) - imageSY($wmImg);
imageCopyMerge($jpegImg, $wmImg, $wmX, $wmY, 0, 0, imageSX($wmImg), imageSY($wmImg), 90);
ImageJPEG($jpegImg, $file, 90);
}
}
}


// 에디터에서 이미지 경로 추출 시작
$s = $wr_content;
$img_file = Array();
while($s) {
$pos = strpos($s, "/data/cheditor");
$s = substr($s, $pos, strlen($s));
$pos = strpos($s, '"');

$file_path = substr($s, 0, $pos);
if (!$file_path) break;

$img_file[] = $g4[path].substr($file_path,0,-1);

$s = substr($s, $pos, strlen($s));
}
// 에디터에서 이미지 경로 추출 끝

// 에디터이미지 워터마크 작업 시작
for($i=0;$i<count($img_file);$i++){
$wmImg = imageCreateFromGIF($wmFile);
$size = getimagesize($img_file[$i]);
if ($size[2] == 1)
$jpegImg = imagecreatefromgif($img_file[$i]);
else if ($size[2] == 2)
$jpegImg = imagecreatefromjpeg($img_file[$i]);
else if ($size[2] == 3)
$jpegImg = imagecreatefrompng($img_file[$i]);
else
break;

$wmX=imageSX($jpegImg) - imageSX($wmImg);
$wmY=imageSY($jpegImg) - imageSY($wmImg);
imageCopyMerge($jpegImg, $wmImg, $wmX, $wmY, 0, 0, imageSX($wmImg), imageSY($wmImg), 90);
ImageJPEG($jpegImg, $img_file[$i], 90);
}
// 에디터이미지 워터마크 작업 끝

댓글 작성

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

로그인하기

댓글 2개

ImageJPEG(.... 90); 이 부분에서 새로운 이미지를 만드는데
화질을 90%로 하니까 원본보다 늘어나지는 않을 겁니다
답변 감사합니다~~

게시글 목록

번호 제목
284508
284499
284492
284490
284484
284481
284478
284476
284474
284472
284470
284458
284457
284454
284453
284447
284446
284444
284441
284440