• 북마크
  • 1:1문의
  • 새글
  • 회원가입
  • 로그인

공유자료실

  • Home
  • 공유자료실

[게시판] 메타정보(exif) 추출방법

3,551 2015.09.16 17:52

첨부파일

짧은주소

본문

현재 메타정보를 사용중에 있습니다.

이윰빌더는 구조적으로 그누보드랑 변수가 좀 달라서 수정을 좀 해야했습니다.

일단 저 같은 경우 모든 게시판에 이미지가 있을 경우 메타정보가 나오게 했습니다.

물론 메타정보가 없는 사진인 경우는 안나오겠지요.

만약 게시판별로 할 경우에는 스킨 게시판의 view.skin.php를 수정하면 될 듯 합니다.

 

수정파일

/eyoom/core/board/view.skin.php

 

1. 제일 상단에 


<style type="text/css">
<!--
.exif {
    font-family: "굴림", "돋움";
    color: #000000;
    font-size: 12px;
    line-height: 30px;
    width: 100%;
}

-->
</style>
<script language="javascript">
function exif_view(n){
    view = document.getElementById("exif["+n+"]");
    if(view.style.display == "inline"){
        view.style.display = "none";
    }else{
        view.style.display = "inline";
    }

}
</script>

 

 

이부분을 삽입하세요 => 메타정보버튼을 누르면 메타정보가 아래로 나오는 스크립트입니다.

 

2. 수정전


// 파일 출력
    $v_img_count = count($view['file']);
    if($v_img_count) {
        $file_conts = "<div id=\"bo_v_img\">\n";

        for ($i=0; $i<=count($view['file']); $i++) {
            if ($view['file'][$i]['view']) {
                //echo $view['file'][$i]['view'];
                $file_conts .= get_view_thumbnail($view['file'][$i]['view']);

            }
        }
        $file_conts .= "</div>\n";
    }
    $view_content = $eb->eyoom_content($view['content']);

 

 

파일출력하는 부분이 있습니다.

여기에 메타정보 소스를 삽입합니다. 

수정후


// 파일 출력
    $v_img_count = count($view['file']);
    if($v_img_count) {
        $file_conts = "<div id=\"bo_v_img\">\n";

        for ($i=0; $i<=count($view['file']); $i++) {
            if ($view['file'][$i]['view']) {
                //echo $view['file'][$i]['view'];
                $file_conts .= get_view_thumbnail($view['file'][$i]['view']);

//exif 정보 삽입시작

                $exif = @exif_read_data("{$view[file][$i][path]}/{$view[file][$i][file]}");
                if (isset($exif[Make]) || isset($exif[Model])){
                    $file_conts .= "<div class='exif'><a onclick='exif_view($i)' style='cursor:hand'>▒▒ <b>촬영정보</b> ▒▒</a><br><div id='exif[$i]' style='font-family: \"굴림\", \"돋움\"; font-size: 12px; line-height: 18px; display:none;'>\n" ;
                    //$exif = @exif_read_data("{$view[file][$i][path]}/{$view[file][$i][file]}");
                    if (isset($exif[Make]) || isset($exif[Model])) $file_conts .= "카메라모델 : $exif[Make] - $exif[Model]<br>\n";
                    if (isset($exif[DateTimeOriginal])) $file_conts .= "촬영일시 : $exif[DateTimeOriginal]<br>\n";
                    if (isset($exif[COMPUTED][Width]) || isset($exif[COMPUTED][Height])) $file_conts .= "원본 이미지크기 : {$exif[COMPUTED][Width]} x {$exif[COMPUTED][Height]} 픽셀<br>\n";
                     // 촬영모드
                      //촬영모드
                    if (isset($exif[ExposureProgram])) {
                    if ($exif[ExposureProgram]==0) $file_conts .= "촬영모드 : Auto Mode\n";
                    else if ($exif[ExposureProgram]==1) $file_conts .= "촬영모드: M모드<br>\n";
                    else if ($exif[ExposureProgram]==2) $file_conts .= "촬영모드: 프로그램모드<br>\n";
                    else if ($exif[ExposureProgram]==3) $file_conts .= "촬영모드: 조리개모드<br>\n";
                    else if ($exif[ExposureProgram]==4) $file_conts .= "촬영모드: 셔트스피드모드<br>\n";
                    }
                    //측광모드
                    if (isset($exif[MeteringMode])) {
                    if ($exif[MeteringMode]==0) $file_conts .= "측광모드 : Unknow\n";
                    else if ($exif[MeteringMode]==1)$file_conts .= "측광모드 : Average<br>\n";
                    else if ($exif[MeteringMode]==2) $file_conts .= "측광모드 : Center weighted averaget<br>\n";
                    else if ($exif[MeteringMode]==3) $file_conts .= "측광모드 : Spot<br>\n";
                    else if ($exif[MeteringMode]==4) $file_conts .= "측광모드 : Unknow<br>\n";
                    else if ($exif[MeteringMode]==5) $file_conts .= "측광모드 : Multi Segment<br>\n";
                    else if ($exif[MeteringMode]==6) $file_conts .= "측광모드 : Partial<br>\n";
                    }

                    //초점거리    
                    if (isset($exif[FocalLength])) {
                    $xxx = explode("/", $exif[FocalLength]);
                    $FocalLength = $xxx[0] / $xxx[1];
                    $FocalLength = "$FocalLength"."mm";
                    $file_conts .= "초점거리: $FocalLength<br>\n";
                    }

                    if (isset($exif[FocalLengthIn35mmFilm])) $file_conts .= "35mm환산거리 : $exif[FocalLengthIn35mmFilm]"."mm<br>\n"; // 35인치 환산값 

                    if (isset($exif[COMPUTED][ApertureFNumber])) $file_conts .= "조리개 : {$exif[COMPUTED][ApertureFNumber]}<br>\n";
                    if (isset($exif[ISOSpeedRatings])) $file_conts .= "ISO : $exif[ISOSpeedRatings]<br>\n";
                    //화이트밸런스
                    if (isset($exif[WhiteBalance])) {
                    if ($exif[WhiteBalance]==0)$file_conts .= "화이트밸런스 : Auto <br>\n";
                    else if ($exif[WhiteBalance]==1) $file_conts .= "화이트밸러스 : Manual <br>\n";
                    }

                    //노출시간
                       if (isset($exif[ExposureTime])) {
                    $leng=explode("/",$exif[ExposureTime]); 
                    if ($leng[0]/$leng[1] > 1) {
                    $exif[ExposureTime] = ($leng[0]/$leng[1]); //이런식으로 조작을 해서 
                    $file_conts .= "노출시간 : {$exif[ExposureTime]}sec<br>\n";                
                    }
                    else $file_conts .= "노출시간 : {$exif[ExposureTime]}sec<br>\n";                
                    }

                    //노출보정    
                    if (isset($exif[ExposureBiasValue])) {
                    $xxx = explode("/", $exif[ExposureBiasValue]);
                    $ExposureBiasValue = $xxx[0] / $xxx[1];
                    $ExposureBiasValue = substr(strval("$ExposureBiasValue"),0,4);
                    $ExposureBiasValue = $ExposureBiasValue."EV";
                    $file_conts .= "노출보정(EV): <font color=#FFCC00>$ExposureBiasValue</font><br>\n";
                    }
                    if (isset($exif[COMPUTED][CCDWidth])) $file_conts .= "CCD : {$exif[COMPUTED][CCDWidth]}<br>\n";

                    //플래쉬
                    if (isset($exif[Flash])) {
                    if ($exif[Flash]==16) $file_conts .= "Flash: Off Compulsory<br>\n";
                    else if ($exif[Flash]==73) $file_conts .= "Flash: On Compulsory Red-eye reduction<br>\n";
                    else if ($exif[Flash]==9) $file_conts .= "Flash: On Compulsory<br>\n";
                    else if ($exif[Flash]==7) $file_conts .= "Flash: On<br>\n";
                    else $file_conts .= "Flash: Unknow<br>\n";
                    }
                    $file_conts .= "</div></div><br>\n" ;
                }
    //exif 정보 삽입마침

            }
        }
        $file_conts .= "</div>\n";
    }
    $view_content = $eb->eyoom_content($view['content']);

 

빨간색글씨로 넣은 부분을 삽입하면 됩니다.

저도 짜집기하고 카메라 메타정보중에 필요한 부분을 여러번 수정한 파일이라 오류가 있을 수 있습니다.

 

필요하신 분들이 있어 조심스레 올려봅니다.

1
- 수국 메일보내기 아이디로 검색 - 회원등급 : 새싹/Level 7 - 포인트 : 13,622
레벨 7
경험치 4,415

Progress Bar 16%

- 가입일 : 2015-02-25 17:08:26
- 서명 :
- 자기소개 :
댓글목록

홍인님의 댓글


첨부된 그림처럼 그림 하단에 일목요연하게 나열되면 좋겠네요.
두 그림의 내용이 조금 다르지만 욕심 같으면 메타내용이 모두 포함되었으면 합니다. ㅎ

축하합니다. 첫댓글 포인트 37포인트를 획득하였습니다.

홍인님의 댓글


두번쨰 그림입니다.
수국님 정말 감사드리고요, 이윰에 최적화는 이윰님이 해 주실 것으로 믿고 적용은 조금 뒤로 미루겠습니다. 10년 먹은 체증이 내려가는 것 같아 정말 감사드립니다.

홍인님의 댓글

빨간부분은 보통 exif.lib.php 로 인클루드 하는 내용이 맞나요?

수국님의 댓글

미리 만들어진 모듈로 하는 경우도 있고요
제가 올린건 php exif 의 기능으로 만들어지는거예요

이윰IN님의 댓글

수국님 귀한 소스 공개해 주셔서 감사드립니다.
수국님 소스를 응용해서 이윰빌더에 적용하여 배포하도록 하겠습니다.
환절기 감기조심하시고 오늘 하루도 활기차고 멋진 하루 되세요.
감사합니다.

홍인님의 댓글

이윰님 수고 해 주세요.
저는 학수고대만 하고 있겠습니다.
이 exif 하나 때문에 이윰빌드를 포기해야 하나 고민 많이 했거던요.
역시 기다리니 찾아오는군요.

이윰IN님의 댓글

홍인님의 다리를 부여잡기 위해서라도 빨리 서둘러야 겠군요.
수국님께 다시 한번 감사드립니다. ^^

Total 9건 1 페이지
공유자료실 이용안내

공유자료실 게시판에서 다양한 자료를 공유하실 수 있습니다. 레이아웃, 게시판, 최신글, 플러그인 등 다양한 자료를 공유 해 주세요.


  1. 포인트 배포가 가능합니다. 포인트를 걸고 자료를 배포하시면 다운로드 발생 시 배포한 회원님께 80%의 포인트가 적립됩니다.
  2. 적립된 포인트는 이윰몰에서 상품결제 시 사용가능합니다.
  3. 저작권이 있는 자료는 무단으로 배포를 하실 수 없으니 주의하여 주시길 바랍니다.
  4. 배포된 해당 자료에 대한 문의는 해당 내용페이지에서만 질문하여 주세요.

배포되는 자료는 이윰넷에서 일일이 필터링 할 수 없으며 문제발생 시 책임을 지지 않습니다. 회원님들간 자발적인 정화와 참여를 부탁드립니다.

LOGIN
사이드 메뉴

최신글이 없습니다.

최신글이 없습니다.

출석 랭킹

오늘의 랭킹

회원사진

닉네임

개근왕

최다1위

shadow shadow
Ranking

    출력할 랭킹이 없습니다.

  • 01 shadow
    674,374
  • 02 신비
    335,419
  • 03 가을하늘
    204,735
  • 04 mame
    202,630
  • 05 이윰MOUNT
    199,181
  • 06 미스코리아
    163,939
  • 07 레오나르도
    147,576
  • 08 테크니션
    142,655
  • 09 이윰IN
    135,258
  • 10 비온뒤맑음
    127,882
  • 01 shadow
    28,938
  • 02 joosam
    23,606
  • 03 티보리
    21,954
  • 04 홍인
    18,644
  • 05 레오나르도
    18,088
  • 06 이윰IN
    17,983
  • 07 도깨비
    16,614
  • 08 이윰EGG
    16,105
  • 09 자이언트
    14,698
  • 10 미스트
    14,379