728x90

php.ini 에서 extension=php_gd2.dll 가 앞에 주석처리되어 있다면 ;(주석)을 제거하고 apache 를 재시작한다.


생활코딩(https://opentutorials.org/course/62/5137) 사이트에 나온 걸 기준으로 주석을 좀 더 달았다.

<?php
header("Content-type: image/png"); // 콘텐츠의 타입을 png image 로 선언
$string = isset($_GET['text'])? $_GET['text']:'default';
$im = imagecreatefrompng("image/btn.png"); // 버튼 배경으로 사용할 이미지를 지정
$backgroundColor  = imagecolorallocate($im, 60, 87, 156); // 컬러를 지정
$px = (imagesx($im) - 7.5 * strlen($string)) / 2;
imagestring($im, 4, $px, 9, $string, $backgroundColor );
imagepng($im); // 이미지 파일 만들기
imagedestroy($im); // 정보삭제
?>


심플한 워터마크 만들기

디지털 파일에 저작자를 밝히기 위해 흐릿하게 이미지를 박아넣는 디지털 워터마크.
유료 이미지 소스 제공 사이트들에는 샘플 이미지에 모두 워터마크 처리를 한다.
샘플로 공개할 때 화질을 낮추거나 워터마크 처리를 하여 도용을 방지한다.


http://itrooms.tistory.com/304 에 나온 워터마크 코드를 용어를 좀 더 정리했다.


watermark.zip

사용법 : <img src="./watermark.php?path=image/sandal-01.png">

<?php
$ALIGN_CENTER = true;
$image_source =  $_GET['path']; // 원본 이미지 경로
$watermark_Path = './image/watermark.png'; // 워터마크 사용할 이미지
$Image_Type = strtolower(substr($image_source, strlen($image_source)-4, 4));
$watermark_Type = strtolower(substr($watermark_Path, strlen($watermark_Path)-4, 4));
if($Image_Type == '.bmp') $image = imagecreatefromwbmp($image_source);
if($Image_Type == '.gif') $image = imagecreatefromgif($image_source);
if($Image_Type == '.jpg') $image = imagecreatefromjpeg($image_source);
if($Image_Type == '.png') $image = imagecreatefrompng($image_source);
if($image) {
    if($watermark_Type == '.bmp') $watermark = imagecreatefromwbmp($watermark_Path);
    if($watermark_Type == '.gif') $watermark = imagecreatefromgif($watermark_Path);
    if($watermark_Type == '.jpg') $watermark = imagecreatefromjpeg($watermark_Path);
    if($watermark_Type == '.png') $watermark = imagecreatefrompng($watermark_Path);
    if($watermark) {
        list($imagewidth, $imageheight) = getimagesize($image_source);
        list($watermarkwidth, $watermarkheight) = getimagesize($watermark_Path);
        if($ALIGN_CENTER) { // Center
            $startwidth = (($imagewidth - $watermarkwidth)/2);
            $startheight = (($imageheight - $watermarkheight)/2);
        }
        else {
            $startwidth = ($imagewidth - $watermarkwidth);
            $startheight = ($imageheight - $watermarkheight);
        }
        imagealphablending($image, true);
        imagecopy($image, $watermark, $startwidth, $startheight, 0, 0, $watermarkwidth, $watermarkheight);
        header("Content-type: image/png");
        imagepng($image); // 이미지 파일 만들기
        imagedestroy($image);
        imagedestroy($watermark);
    }
}
// <img src="./watermark.php?path=원본이미지경로">
?>


728x90
블로그 이미지

Link2Me

,