도쿠 위키 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.gifwatermark_l.gif는 동일하게 /lib/exe 에 넣습니다.

누구나 수정하실 수 있습니다. 문법은 Formatting Syntax참조하세요.

역링크