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

공유자료실

  • Home
  • 공유자료실

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

3,554 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 51건 2 페이지
공유자료실 이용안내

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


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

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

번호 제목 글쓴이 날짜
31 shadow 아이디로 검색 2015.09.03 4,178
30 shadow 아이디로 검색 2015.09.02 4,982
29 shadow 아이디로 검색 2015.08.14 2,777
28 갓구운빵 아이디로 검색 2015.07.15 2,367
27 fm25 아이디로 검색 2015.06.12 2,209
26 fm25 아이디로 검색 2015.06.08 4,188
25 fm25 아이디로 검색 2015.05.29 4,628
24 fm25 아이디로 검색 2015.05.29 4,099
23 fm25 아이디로 검색 2015.05.29 3,964
22 이윰넷 아이디로 검색 2015.05.24 2,594
21 fm25 아이디로 검색 2015.05.24 3,136
20 이윰넷 아이디로 검색 2015.05.18 3,367
19 fm25 아이디로 검색 2015.05.17 5,489
18 fm25 아이디로 검색 2015.05.04 3,853
17 비즈팔 아이디로 검색 2015.04.30 3,239
16 fm25 아이디로 검색 2015.04.29 2,896
15 비즈팔 아이디로 검색 2015.04.27 4,756
14 fm25 아이디로 검색 2015.04.26 3,487
13 fm25 아이디로 검색 2015.04.25 4,461
12 shadow 아이디로 검색 2015.03.31 3,294
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