개발

Exif 메타정보 뽑아내기

에드몽단테스 2009. 12. 23. 19:20
디지털 카메라로 촬영된 이미지의 경우 Exif 메타 정보라하여 이미지에 별도로 촬영정보를 저장합니다.
다음은 이 exif 정보를 뽑아내는 설명입니다.

메타정보를 위해서는 metadata-extractor 오픈소스를 이용합니다.

import com.drew.imaging.jpeg.JpegMetadataReader;
import com.drew.metadata.Directory;
import com.drew.metadata.Metadata;
import com.drew.metadata.Tag;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGDecodeParam;
import com.sun.image.codec.jpeg.JPEGImageDecoder;

public static void main(String args[]){
        try{
            FileInputStream fis = new FileInputStream(new File("F5704.jpg"));
            JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(fis);
            BufferedImage image = decoder.decodeAsBufferedImage();
            
            JPEGDecodeParam param = decoder.getJPEGDecodeParam();
            Metadata metadata = JpegMetadataReader.readMetadata(param);
            
            Iterator directories = metadata.getDirectoryIterator();
            StringBuilder sb = new StringBuilder();
            while(directories.hasNext()){
                Directory directory = (Directory)directories.next();
                Iterator tags = directory.getTagIterator();
                while(tags.hasNext()){
                    Tag tag = (Tag)tags.next();
                    sb.append(tag.toString()+"\n");
                }
            }
            fis.close();
        }catch(IOException e){
            e.printStackTrace();
        }

 }



php의 경우 exif 라이브러리를 같이 컴파이 해줍니다.

일반적으로는 컴파일이 되어 있지 않는 것 같기 때문에 조정을 해주어야 합니다.

라이브러리가 설치되었다면


< ?

$exif = exif_read_data('DSCF5704.JPG', 'ANY_TAG', true);

echo "< pre>";
print_r($exif);
echo "< /pre>";
?>

와 같은 간단한 코드로 exif 정보를 확인할 수 있습니다.

반응형