메뉴 건너뛰기

Dev tips

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

taknim 2017.03.15 18:34 조회 수 : 236

    /**
     * 이미지 흑백처리
     * @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;
    }

번호 제목 글쓴이 날짜 조회 수
474 유용한 함수 pack, unpack, ip2long, long2ip taknim 2009.01.13 33390
473 해커들을 위한 CMD 툴 모음 file taknim 2008.05.22 32582
472 [js & php] 비밀번호 유효성 체크 - 연속 문자, 같은 문자 taknim 2011.11.09 28789
471 [Oracle] ORA-00600, ORA-06544, ORA-06553 오류 발생시 taknim 2009.06.09 23852
470 리눅스 콘솔 단축키 taknim 2009.07.06 21958
469 리눅스 split | 파일 사이즈, 라인 단위 자르기 taknim 2008.06.19 20595
468 mcrypt 암호화/복호화 AES/CBC/PKCS5/PKCS7/PADDING [1] taknim 2010.03.19 19490
467 최고의 웹디자인용 작은 아이콘 다운로드 사이트 모음 : Best Small Icon Sites taknim 2007.07.11 18947
466 [mysql] 동적 쿼리 생성시 변수를 대입하거나 값을 받아오기 taknim 2009.08.17 17216
465 [MSSQL] MS-SQL 동적쿼리 이용하기 taknim 2009.12.28 16990
464 [google map api] 구글 맵스 API 로 지도 가져오기 taknim 2012.02.09 16977
463 [C/C++] prnitf 역슬래쉬 문자 taknim 2008.11.28 16255
462 EUC-KR <-> UTF-8 상호변환 하기 (문자셋charset 변환) taknim 2008.05.27 16114
461 [oracle] isqlplus 에서 특수문자(&) 입력하는 방법 taknim 2012.08.10 16081
460 [mysql] mysqlbinlog 실행시 캐릭터셋(utf8) 오류 taknim 2009.08.25 15778
459 [Oracle] DBNEWID Utility - DBNAME,DBID변경하기 taknim 2009.07.06 15582
458 inode 개념 taknim 2008.07.08 15368
457 UTF-8 을 이용해서 다국어버젼 웹사이트 개발시 고려사항 taknim 2008.10.17 15340
456 누구나 다 아는 네트워크(소켓) 통신시의 함수 pack과 unpack taknim 2008.05.17 14614
455 Postfix SMTP 서버를 이용한 IPv6 메일(SMTP) 서버 구성 taknim 2008.02.15 14448