메뉴 건너뛰기

Dev tips

PHP [gd] image_filter 이미지 흑백 처리

taknim 2017.03.15 18:34 조회 수 : 21

    /**
     * 이미지 흑백처리
     * @param  [type] $fileName    [description]
     * @return [type]            [description]
     */
    public function saveGrayScaleImage($fileName){

        $result = false;
        $changeName = "";
        $fileext = strpos($fileName,'.')===false?'':substr(strrchr($fileName, "."), 1);
        $filenameonly = substr($fileName, 0, strlen($fileName)-strlen($fileext)-1);
        $filepath = dirname(dirname(BASEPATH).'..')."/".SAVE_DIR_FILES;

        // image새로 생성
        switch(strtolower($fileext)){
            case "png":
                $originFile = imagecreatefrompng($filepath."/".$fileName);
                imagealphablending($originFile, FALSE);
                imagesavealpha($originFile, TRUE);
                break;
            case "gif":
                $originFile = imagecreatefromgif($filepath."/".$fileName);
                break;
            case "jpg":
            case "jpeg":
            default:
                $originFile = imagecreatefromjpeg($filepath."/".$fileName);
                break;
        }

        // 흑백으로 처리 후 저장
        if($originFile && imagefilter($originFile, IMG_FILTER_GRAYSCALE))
        {
            $changeName = $filepath.$filenameonly."_gray.".$fileext;

            switch(strtolower($fileext)){
                case "png":
                    //echo $changeName;
                    $result = imagepng($originFile, $changeName);
                    break;
                case "gif":
                    $result = imagegif($originFile, $changeName);
                    break;
                case "jpg":
                case "jpeg":
                default:
                    $result = imagejpeg($originFile, $changeName);
                    break;
            }
            if(!$result){
                $changeName =  "";
            }
        }
        return $changeName;
    }

번호 제목 글쓴이 날짜 조회 수
469 [MySQL] FIND_IN_SET 배열 형식의 값을 비교할 때 사용 taknim 2017.10.18 8
468 Git에서 reset, revert - commit, push 한 내용을 되돌리기 taknim 2017.10.13 11
467 80004005 : Excel 8.0(xls) OLEDB 오류 taknim 2017.10.13 18
466 AWS HTTPD SSL 추가 (apache, httpd, mod_ssl) [1] taknim 2017.09.05 22
465 Javascript Image Filter 만들기 file taknim 2017.04.24 15
464 [단축키] 이클립스(Eclipse) for MAC file taknim 2017.03.17 31
463 [gd] imagecopyresampled 이미지 썸네일 생성 taknim 2017.03.15 21
» [gd] image_filter 이미지 흑백 처리 taknim 2017.03.15 21
461 mysql split 함수 (split_str) taknim 2017.03.14 62
460 mount 관련 명령어 및 설정 taknim 2017.02.24 21
459 APM 웹 서버 설정 secret taknim 2017.01.30 0
458 윈도우 가상화 이미지 taknim 2016.12.20 21
457 랜덤 문자열(쿠폰번호) 생성 taknim 2016.12.15 175
456 export to excel(xlsx, xls), csv, txt file - 엑셀 파일로 저장 file taknim 2016.12.15 3785
455 Regular Expressions Cheat Sheet - 정규표현식 치트 시트 taknim 2016.12.13 646
454 chkconfig Level 별 설명 (Run level , 자동실행) taknim 2016.12.10 36
453 [excel] 엑셀 랜덤 문자열(쿠폰) 생성 taknim 2016.10.22 238
452 자바스크립트 클립보드 복사 (copy) taknim 2016.06.17 310
451 [Linux] 아파치 동시접속자수 확인 (동접,apache,httpd) taknim 2016.06.14 326
450 SEED 블록암호 알고리즘 소스 (C/C++, JAVA, ASP, JSP, PHP) [1] file taknim 2016.05.28 708