차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
tech:dokuwiki_jpeg_watermark [2013/10/08 10:10] – [혹은 방법2] V_Ltech:dokuwiki_jpeg_watermark [2016/07/12 09:26] (현재) – 바깥 편집 127.0.0.1
줄 1: 줄 1:
 +{{tag>tech dokuwiki jpeg 워터마크 watermark}}
 +======도쿠 위키 Jpeg에 출처 표시 넣기... (Dokuwiki Jpeg Watermark)======
 +도쿠 위키에 Jpeg 그림에 워터 마크 넣기...
 +
 +**/lib/exe/fetch.php**  의  ** finally send the file to the client** 라는 주석 앞 부분에 넣으면 됩니다.
 +
 +확장자가 JPEG 이고, 가로 크기가 300픽셀 이상이라면 워터마크 이미지를 불러와서 합쳐줍니다...
 +
 +{{ :tech:jessica_gomes00.jpg?300 |}}
 +
 +  * 다른 확장자는 귀찮아서 안했습니다.
 +  * 당근 내부 이미지만 됩니다. 
 +  *<del> 이게 html 표준에 잘 맞는 지는 모르겠습니다.</del> 에러 수정했습니다.
 +  * 실시간으로 이루어지는 것이라 원본 그림은 변형되지 않습니다.
 +
 +<code php>  //vaslor  image watermark... 
 +if((substr($MIME,0,5) =='image') && ($EXT == 'jpg' || $EXT == 'jpeg') ){ 
 +// 확장자가 JPEG 이고,
 +  $size = getimagesize($FILE);  
 +  if ( $size[0]>299) { //  가로 크기가 300픽셀 이상이라면
 +       $watermark = imagecreatefromgif('watermark.gif');  
 +       $watermark_width = imagesx($watermark);  
 +       $watermark_height = imagesy($watermark);  
 +       $image = imagecreatefromjpeg($FILE);  
 +       $dest_x = $size[0] - $watermark_width - 5;  
 +       $dest_y = $size[1] - $watermark_height - 5;  
 +       imagecopymerge($image, $watermark, $dest_x, $dest_y, 0, 0, 
 +                      $watermark_width, $watermark_height, 60);  
 +      // header('Content-Type: image/jpg'); 
 +       imageinterlace($image,1);  //progressive
 +      // $data['file'] = $FILE  =imagejpeg($image,NULL,100);
 +     imagejpeg($image,NULL,100); //
 +     // imagejpeg($image,$FILE,100);
 +       imagedestroy($image);
 +       exit;
 +  } 
 +}</code>
 +
 +watermark.gif 는 /lib/exe/ 에 넣어줍니다.
 +
 +=====혹은 방법2=====
 +
 +약간 개선된 방법입니다. 
 +
 +''inc/fetch.functions.php'' 를 수정합니다. 
 +      //use x-sendfile header to pass the delivery to compatible webservers
 +이 문구 앞에 넣습니다. 
 +
 +<code php>
 + //vaslor watermark 삽입...
 + if(($mime == 'image/jpeg')||($mime == 'image/pjpeg'))
 + {  // jpg,jpeg만
 +  $size = getimagesize($file);
 +  if ( $size[0]>299) 
 + { //  그림 가로 크기가 300픽셀 이상이라면
 +    switch ($size[0]) 
 + {
 +    case ($size[0]>1200): {$watermark =imagecreatefromgif('watermark_l.gif'); break;}
 + case ($size[0]>600): {$watermark =imagecreatefromgif('watermark_m.gif'); break;}
 +    default:             {$watermark =imagecreatefromgif('watermark_s.gif');}
 +      }
 + $watermark_width = imagesx($watermark);  
 +    $watermark_height = imagesy($watermark);  
 +    $image = imagecreatefromjpeg($file);  
 +    $dest_x = ($size[0] - $watermark_width)/2;  
 +    $dest_y = ($size[1] - $watermark_height)/2;  
 +    imagecopymerge($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height, 30);  
 +    imageinterlace($image,1);  //progressive
 +    imagejpeg($image,NULL,100); // 실시간, 저장은 안함.
 +    imagedestroy($image);  
 +    imagedestroy($watermark);//삭제.
 +    exit;
 +  } 
 +
 + </code>
 +
 +''watermark.gif'' 랑 ''watermark_l.gif''는 동일하게
 +''/lib/exe'' 에 넣습니다. 
 +
 +^  누구나 수정하실 수 있습니다. 문법은 [[wiki:syntax]]참조하세요.  |
 +