워터마크이용시 용량이 늘어나나요? 정보
워터마크이용시 용량이 늘어나나요?본문
안녕하세요^^
사진에 워터마크를 적용할 경우 업로드된 파일외에
워터마크가 적용된 사진도 동시에 저장되는 건가요?
즉, 서버에 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장의 사진(원본 및 워터마크적용사진)이 저장되는것인지요??
답변 꼭 부탁드립니다~~
워터마크 소스는 아래와 같습니다..
$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);
}
// 에디터이미지 워터마크 작업 끝
댓글 전체
ImageJPEG(.... 90); 이 부분에서 새로운 이미지를 만드는데
화질을 90%로 하니까 원본보다 늘어나지는 않을 겁니다
화질을 90%로 하니까 원본보다 늘어나지는 않을 겁니다
답변 감사합니다~~