카이루님 감사드립니다♡♡ 워터마크 질문 한번만 더 부탁드릴께요 정보
카이루님 감사드립니다♡♡ 워터마크 질문 한번만 더 부탁드릴께요본문
카이루님께서 말씀하신 방법대로 그부분의 소스를 수정하니 투명하게 처리되는건 없어
졌는데 워터마크가 무조건 검정색으로 찍히더라구요.
워터마크를 파란색, 빨간색, 흰색, 초록색, 노란색 등 어떤 색으로 만들어놔도 무조건
워터마크가 검정색이 됩니다.
그냥 저는 단지 원본파일 그대로를 찍고 싶을 뿐인데, 어느부분을 어떻게 수정하면 될까요?
<?
function watermark($file, $save_filename, $water_file)
{
$url="/usr/home/사이트주소/public_html/bbs/"; //자신의 제로보드 절대경로를 써줍니다
$file=$url.$file;
$img_info = getImageSize($file);
if($img_info[2] == 1) $src_img = ImageCreateFromGif($file); //gif파일일경우
elseif($img_info[2] == 2) $src_img = ImageCreateFromJPEG($file);//jpg파일일경우
elseif($img_info[2] == 3) $src_img = ImageCreateFromPNG($file);//png파일일경우
elseif($img_info[2] == 6) {
exec( "bmptoppm $file > $file.ppm");
exec( "cjpeg -quality 100 $file.ppm > $file.jpg");
$src_img = ImageCreateFromJPEG($file.".jpg");
}
else return 0;
$img_width = $img_info[0];
$img_height = $img_info[1];
$dst_img = $src_img;
$water = ImageCreateFromPNG($water_file);
$water_x = imageSX($water);
$water_y = imageSY($water);
$trans = Imagecolorat($water, 0, 0);
$offset_X = $img_width - $water_x - 3;
$offset_Y = $img_height - $water_y - 3;
for ( $i = 0; $i < $water_x; $i++ )
for ( $j = 0; $j < $water_y; $j++ )
if ( $trans != Imagecolorat($water, $i, $j) ) {
$rgb = imagecolorsforindex($dst_img, Imagecolorat($dst_img, $i + $offset_X, $j + $offset_Y));
if ( $rgb["red"] > 177) $rgb["red"] = $rgb["red"] - 50;
else $rgb["red"] = $rgb["red"] + 50;
if ( $rgb["green"] > 177) $rgb["green"] = $rgb["green"] - 50;
else $rgb["green"] = $rgb["green"] + 50;
if ( $rgb["blue"] > 177) $rgb["blue"] = $rgb["blue"] - 50;
else $rgb["blue"] = $rgb["blue"] + 50;
$wt_img = $dst_img;
imagesetpixel($dst_img, $i+$offset_X, $j+$offset_Y, $wt_img);
}
if($img_info[2] == 1) {
ImageInterlace($dst_img);
ImageJPEG($dst_img, $file.$save_filename);//gif라이팅안되므로수정
}elseif($img_info[2] == 2){
ImageInterlace($dst_img);
ImageJPEG($dst_img, $file.$save_filename);
}elseif($img_info[2] == 3){
ImagePNG($dst_img, $file.$save_filename);
}elseif($img_info[2] == 6){
ImageInterlace($dst_img);
ImageJPEG($dst_img, $file.$save_filename);
unlink( "$file.ppm" );
unlink( "$file.jpg" );
}
ImageDestroy($dst_img);
}
?>
졌는데 워터마크가 무조건 검정색으로 찍히더라구요.
워터마크를 파란색, 빨간색, 흰색, 초록색, 노란색 등 어떤 색으로 만들어놔도 무조건
워터마크가 검정색이 됩니다.
그냥 저는 단지 원본파일 그대로를 찍고 싶을 뿐인데, 어느부분을 어떻게 수정하면 될까요?
<?
function watermark($file, $save_filename, $water_file)
{
$url="/usr/home/사이트주소/public_html/bbs/"; //자신의 제로보드 절대경로를 써줍니다
$file=$url.$file;
$img_info = getImageSize($file);
if($img_info[2] == 1) $src_img = ImageCreateFromGif($file); //gif파일일경우
elseif($img_info[2] == 2) $src_img = ImageCreateFromJPEG($file);//jpg파일일경우
elseif($img_info[2] == 3) $src_img = ImageCreateFromPNG($file);//png파일일경우
elseif($img_info[2] == 6) {
exec( "bmptoppm $file > $file.ppm");
exec( "cjpeg -quality 100 $file.ppm > $file.jpg");
$src_img = ImageCreateFromJPEG($file.".jpg");
}
else return 0;
$img_width = $img_info[0];
$img_height = $img_info[1];
$dst_img = $src_img;
$water = ImageCreateFromPNG($water_file);
$water_x = imageSX($water);
$water_y = imageSY($water);
$trans = Imagecolorat($water, 0, 0);
$offset_X = $img_width - $water_x - 3;
$offset_Y = $img_height - $water_y - 3;
for ( $i = 0; $i < $water_x; $i++ )
for ( $j = 0; $j < $water_y; $j++ )
if ( $trans != Imagecolorat($water, $i, $j) ) {
$rgb = imagecolorsforindex($dst_img, Imagecolorat($dst_img, $i + $offset_X, $j + $offset_Y));
if ( $rgb["red"] > 177) $rgb["red"] = $rgb["red"] - 50;
else $rgb["red"] = $rgb["red"] + 50;
if ( $rgb["green"] > 177) $rgb["green"] = $rgb["green"] - 50;
else $rgb["green"] = $rgb["green"] + 50;
if ( $rgb["blue"] > 177) $rgb["blue"] = $rgb["blue"] - 50;
else $rgb["blue"] = $rgb["blue"] + 50;
$wt_img = $dst_img;
imagesetpixel($dst_img, $i+$offset_X, $j+$offset_Y, $wt_img);
}
if($img_info[2] == 1) {
ImageInterlace($dst_img);
ImageJPEG($dst_img, $file.$save_filename);//gif라이팅안되므로수정
}elseif($img_info[2] == 2){
ImageInterlace($dst_img);
ImageJPEG($dst_img, $file.$save_filename);
}elseif($img_info[2] == 3){
ImagePNG($dst_img, $file.$save_filename);
}elseif($img_info[2] == 6){
ImageInterlace($dst_img);
ImageJPEG($dst_img, $file.$save_filename);
unlink( "$file.ppm" );
unlink( "$file.jpg" );
}
ImageDestroy($dst_img);
}
?>
댓글 전체