게시물에 등록된 이미지파일 썸네일 생성 하고 워터마크 처리 하기 > 정보공유

본문 바로가기

쇼핑몰 검색

위토즈소프트 로그인

회원가입 회원가입  아이디/비밀번호찾기 아이디/비밀번호찾기

정보공유 목록

그누보드팁 | 게시물에 등록된 이미지파일 썸네일 생성 하고 워터마크 처리 하기

페이지 정보

작성자 위토즈 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일19-04-23 14:30 조회146 회 댓글0 건

본문


첨부된 이미지파일을 썸네일생성하고 워터마크 이미지파일을 별도로 생성하는 소스



//업로드 이미지 가져오기

$view = get_view($write, $board, $board_skin_path);

$thumb_width = 300; // 썸네일 가로 사이즈

$watermark_path = G5_PATH.'/watermark/watermark_logo.png';

$watermark_type = strtolower(substr($watermark_path, strlen($watermark_path)-4, 4));


$v_img_count = count($view['file']);

if($v_img_count) {

    for ($i=0; $i<=count($view['file']); $i++) {


        $srcfile = G5_DATA_PATH.'/file/'.$bo_table.'/'.$view['file'][$i]['file'];

        $waterfile = G5_DATA_PATH.'/file/'.$bo_table.'/water_'.$view['file'][$i]['file'];

        if(is_file($srcfile)) {

            $size = @getimagesize($srcfile);

            if(empty($size))

                continue;


            // jpg 이면 exif 체크

            if($size[2] == 2 && function_exists('exif_read_data')) {

                $degree = 0;

                $exif = @exif_read_data($srcfile);

                if(!empty($exif['Orientation'])) {

                    switch($exif['Orientation']) {

                        case 8:

                            $degree = 90;

                            break;

                        case 3:

                            $degree = 180;

                            break;

                        case 6:

                            $degree = -90;

                            break;

                    }


                    // 세로사진의 경우 가로, 세로 값 바꿈

                    if($degree == 90 || $degree == -90) {

                        $tmp = $size;

                        $size[0] = $tmp[1];

                        $size[1] = $tmp[0];

                    }

                }

            }


            // 원본 width가 thumb_width보다 작다면

            if($size[0] <= $thumb_width)

                continue;


            // Animated GIF 체크

            $is_animated = false;

            if($size[2] == 1) {

                $is_animated = is_animated_gif($srcfile);

            }


            // 썸네일 높이

            $thumb_height = round(($thumb_width * $size[1]) / $size[0]);

            $filename = basename($srcfile);

            $filepath = dirname($srcfile);


            // 워터마크 파일 생성

            $align_center = true;

            $image_type = strtolower(substr($srcfile, strlen($srcfile)-4, 4));

            if ($image_type == '.bmp') $image = imagecreatefromwbmp($srcfile);

            if ($image_type == '.gif') $image = imagecreatefromgif($srcfile);

            if ($image_type == '.jpg') $image = imagecreatefromjpeg($srcfile);

            if ($image_type == '.png') $image = imagecreatefrompng($srcfile);


            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($image && $watermark) {


                list($image_w, $image_h) = getimagesize($srcfile);

                list($watermark_w, $watermark_h) = getimagesize($watermark_path);


                if($align_center) { // Center

                    $pos_x = (($image_w - $watermark_w)/2);

                    $pos_y = (($image_h - $watermark_h)/2);

                }

                else {

                    $pos_x = ($image_w - $watermark_w);

                    $pos_y = ($image_h - $watermark_h);

                }

                imagealphablending($image, true);

                imagecopy($image, $watermark, $pos_x, $pos_y, 0, 0, $watermark_w, $watermark_h);

                imagejpeg($image, $waterfile, 100);

                imagedestroy($image);

                imagedestroy($watermark);

            }


            // 썸네일 생성

            if(!$is_animated)

                $thumb_file = thumbnail($filename, $filepath, $filepath, $thumb_width, $thumb_height, false);

            else

                $thumb_file = $filename;


            if(!$thumb_file)

                continue;


            echo '<img src="'.G5_DATA_URL.'/file/'.$bo_table.'/'.$thumb_file.'"/>';

        }

    }

}


  • 트위터로 보내기
  • 페이스북으로 보내기
  • 구글플러스로 보내기

댓글목록

등록된 댓글이 없습니다.

정보공유 목록

Total 339건 1 페이지
정보공유 목록
번호 제목 글쓴이 날짜 조회
339 퍼블리싱 부트스트랩 form control input box 위토즈 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 05-17 23
열람중 그누보드팁 게시물에 등록된 이미지파일 썸네일 생성 하고 워터마크 처리 하기 위토즈 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 04-23 147
337 API 스마트 에디터 기본 편집모드 변경하는 방법 위토즈 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 04-11 167
336 기타 htaccess 를 이용한 도메인 처리 위토즈 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 04-09 145
335 기타 CSV 파일을 가져오기 할때 한칸씩 밀리는 현상 위토즈 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 04-03 182
334 SQL IN () 은 INNER JOIN 혹은 EXISTS로 사용하자 위토즈 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 03-21 198
333 SQL 중복된 데이터 정리하기 위토즈 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 03-18 222
332 API 네이버 지도 Open API 종료 위토즈 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 03-06 386
331 퍼블리싱 박스 테두리를 따라서 흐르는 효과 위토즈 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 02-08 417
330 그누보드팁 그누보드 및 영카트 사이트 이전 방법 위토즈 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 01-26 569
329 JQUERY 복잡한 rowspan 처리 쉽게 처리하는 방법 위토즈 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 01-22 480
328 씨아이보드팁 한사이트에 2개이상의 도메인을 사용할경우 위토즈 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 01-10 546
327 퍼블리싱 이미지 중앙 가운데 정렬 위토즈 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 12-20 725
326 API 네이버 로그인 API 키 받기 (WEB 서비스 예제) 위토즈 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 12-17 720
325 PHP 엑셀파일에서 문자를 복사한뒤 붙여넣기 할경우 위토즈 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 12-06 852
게시물 검색