PHP & Others

jhead 를 이용하여 디카 이미지 exif 정보를 추출해 BoA요 - -

페이지 정보

본문

라시드
 http://www.sentex.net/~mwandel/jhead/



exif 포맷은 jpeg랑 비슷하지만 여기에 디카이름, 제조사, 해상도, 크기, 셔터스피드 등등을 헤더에 추가한 거...- -;; 자세히 모름니다. 함튼 현재의 디카들은 모두 이 포맷으로 저장한다고 봐도 무방.....할려나? - -

이번에 제대로 된 갤러리를 만들어 볼려고 몇개의 갤러리를 벤치마킹하다가 이미지다운의 갤러리에서는 디카로 찍은 이미지의 exif 정보를 출력해주더군요.

따라해볼려고 php 매녈을 뒤적이니깐 역시 php에서 exif_read_data(read_exif_data) 함수를 제공하더군요. 하하하 - - 근데 아쉽게도 php 컴파일시 --enable-exif 옵션을 주지 않았다면 쓸 수 없데요 T_T

그래서 exif 정보를 읽어오는 프로그램을 이용하기로 했습니다. 그중에 하나가 바로 JHEAD!! exiflist 란 프로그램도 있더군요. exiflist 는 안해봐서 어떤게 더 좋은지는 모릅니다.

JHEAD 가 exif포맷으로부터 읽어올 수 있는 내용은
1. Exif 섬네일
2. 셔터스피드
3. F-stop 번호
4. 플래쉬 사용유무
5. 초점거리
6. 해상도/사이즈
7. 찍은날짜
8. 제조사 및 제품명
9. CCD 넓이
입니다.

먼저 프로그램을 다운 받아야겠죠. 현재 2.0 까지 나온듯.

http://www.sentex.net/~mwandel/jhead/jhead.exe 윈도우용 실행파일입니다.
http://www.sentex.net/~mwandel/jhead/jhead 리눅스용 실행파일입니다.

위의 프로그램을 받으셔서 원하는 디렉토리에 저장하신 후 리눅스의 경우 실행권한을 주면 준비끝.

별로 특별한 것도 없으니깐 간단히 소스를 보죠. 특정이미지의 exif 정보를 읽어오는 아주 간단한 소스입니다.

<?php
// jhead 프로그램을 실행시켜서
// 원하는 이미지의 exif 정보를
// 배열로 저장해서 리턴하는 함수
function exifInfo( $program, $image )
{
        exec( "$program $image", $Value );

        return $Value;
}

$ExifInfo = exifInfo( './jhead', '0082.jpg' );
foreach( $ExifInfo as $Value )        // 배열 순서대로 내용 출력
{
        echo $Value.'<br>';
}
?>

결과물 :
File name : 0082.jpg
File size : 55711 bytes
File date : 2003:07:25 15:46:33
Camera make : Canon
Camera model : Canon PowerShot G2
Date/Time : 2003:06:01 22:35:16
Resolution : 365 x 500
Flash used : No
Focal length : 10.7mm (35mm equivalent: 54mm)
CCD width : 7.11mm
Exposure time: 0.033 s (1/30)
Aperture : f/2.2
Metering Mode: matrix
Jpeg process : Progressive

위와 같이 정보가 출력됩니다. 이제 입맛대로 소스를 작성하셔서 사용하시면 되겠습니다. - -

JHEAD 에 관한 자세한정보는 http://www.sentex.net/~mwandel/jhead/ 에서 참고하세용~
그럼 모두들 즐삽! - -



---------------------
jhead 소스 파일 받아서 압축풀고
make만 해주면 됩니다.

관련자료

Today's proverb
지식에 투자하는 것이 가장 이윤이 높다. (프랭클린)