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
유쾌한 사람은 자기 일에만 몰두하는 사람이 아니다. 때론 자신의 일을 전부 제쳐놓고 타인의 문제에 전력을 쏟는 열정이 있는 사람이다. 타인에게 자신의 힘을 나누어주고 마음을 열어주는 것은 자신의 삶을 행복하게 만드는 방법이다.