도쿠 위키 Jpeg에 출처 표시 넣기... (Dokuwiki Jpeg Watermark)
도쿠 위키에 Jpeg 그림에 워터 마크 넣기…
/lib/exe/fetch.php 의 finally send the file to the client 라는 주석 앞 부분에 넣으면 됩니다.
확장자가 JPEG 이고, 가로 크기가 300픽셀 이상이라면 워터마크 이미지를 불러와서 합쳐줍니다…
- 다른 확장자는 귀찮아서 안했습니다.
- 당근 내부 이미지만 됩니다.
이게 html 표준에 잘 맞는 지는 모르겠습니다.에러 수정했습니다.- 실시간으로 이루어지는 것이라 원본 그림은 변형되지 않습니다.
//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; } }
watermark.gif 는 /lib/exe/ 에 넣어줍니다.
혹은 방법2
약간 개선된 방법입니다.
inc/fetch.functions.php
를 수정합니다.
//use x-sendfile header to pass the delivery to compatible webservers
이 문구 앞에 넣습니다.
//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; } }
watermark.gif
랑 watermark_l.gif
는 동일하게
/lib/exe
에 넣습니다.
누구나 수정하실 수 있습니다. 문법은 Formatting Syntax참조하세요. |
---|