ȸ¿ø°¡ÀԡžÆÀ̵ð/ºñ¹øã±â
ȨÀ¸·Î


»çÁø Ä«·¹¸¶ Á¤º¸ exif Ŭ·¡½º
13³â Àü
<?php
class ImageExif {
    private $picture;
    private $exifargs = array();
    private $setkey_args = array(
        'file'        => array('FileName','FileSize','FileDateTime','MimeType'),
        'computed'    => array('Width','Height','ApertureFNumber','FocusDistance','CCDWidth'),
                        // ³ÐÀÌ,³ôÀÌ,Á¶¸®°³,ÃÔ¿µ°Å¸®,CCD
        'ifdo'        => array('Make','Model','Software'),
        'exif'        => array('ExposureTime','FNumber','Flash','WhiteBalance','DigitalZoomRatio','ISOSpeedRatings','FocalLength','MeteringMode','DateTimeOriginal'),
                        // ³ëÃâ¸ðµå,Á¶¸®°³°ª,Ç÷¡½Ã»ç¿ë¿©ºÎ,È­ÀÌÆ®¹ß¶õ½º,ÁÜ,ISO°¨µµ,ÃÊÁ¡°Å¸®,Ãø±¤¸ðµå ,¿À¸®Áö³¯ÃÔ¿µ½Ã°£
        'makenote'    => array('FirmwareVersion','UndefinedTag:0x0095')
                        // Æß¿þ¾î¹öÀü,»ç¿ë·»Áî
    );
    
    # »çÁø Ç®°æ·Î
    public function __construct($picture){
        # ·ÎÄà ÆÄÀÎÀÎÁö üũ
        if(!file_exists($picture))
            throw new ErrorReporter('',30);

        # ÇÔ¼ö enable üũ
        if(function_exists(read_exif_data)){
            $this->exifargs = read_exif_data($picture,0,true);
            if($this->exifargs ===false)
                throw new ErrorReporter('');
        }
    }
    
    # ÆÄÀÏ °è»ê
    public function calcuSize($size)
    {
        $result = '';
        if(!empty($size)){
            $result = sprintf("%0.1f KB", ($size/1024));
            if($r>1024){
                $result = sprintf("%0.1f MB", ($r/1024)); //¼öÁ¡ ÀÌÇÏ°¡ 0.5 ´Â 1·Î ¹Ý¿Ã¸²ÇÑ´Ù.
            }
        }
    return $result;
    }
    
    # FILE
    public function getFile()
    {
        $result = array();
        if($this->exifargs['FILE']){
            $args =& $this->exifargs['FILE'];
            foreach($this->setkey_args['file'] as $k){
                switch($k){
                    case 'FileDateTime': $result[$k] = date("Y³â m¿ù dÀÏ H:i:s",$args[$k]); break;
                    case 'FileSize' : $result[$k] = self::calcuSize($args[$k]); break;
                    default : $result[$k]= $args[$k];
                }
            }
        }
    return $result;
    }
    
    # COMPUTED
    public function getComputed()
    {
        $result = array();
        if($this->exifargs['COMPUTED']){
            $args =& $this->exifargs['COMPUTED'];
            foreach($this->setkey_args['computed'] as $k){
                switch($k){
                    case 'FocusDistance':
                        $result[$k] = $args[$k];
                        if(strpos($args[$k],'/') !==false){
                            $tmpdistance = explode('/',$args[$k]);
                            $result[$k] = ($tmpdistance[0]/$tmpdistance[1]).'mm';
                        }
                        break;
                    case 'CCDWidth':
                        $result[$k] = (!empty($args[$k])) ? substr($args[$k],0,5).' mm' : '';
                        break;
                    default :
                        $result[$k] = $args[$k];
                }
            }
        }
    return $result;
    }
    
    # IFDO
    public function getIfdo()
    {
        $result = array();
        if($this->exifargs['IFD0']){
            $args =& $this->exifargs['IFD0'];
            foreach($this->setkey_args['ifdo'] as $k){
                switch($k){
                    case 'Make':
                        $result[$k] = str_replace('CORPORATION','',$args[$k]);
                        break;
                    default:
                        $result[$k] = $args[$k];    
                }
            }
        }
    return $result;
    }
    
    # EXIF
    public function getExif()
    {
        $result = array();
        if($this->exifargs['EXIF']){
            $args =& $this->exifargs['EXIF'];
            foreach($this->setkey_args['exif'] as $k){
                switch($k){
                    case 'Flash': $result[$k] = ($args[$k]==1) ? 'ON' : 'OFF'; break;
                    case 'ExposureTime':
                        $result[$k] = $args[$k];
                        if(strpos($args[$k],'/') !==false){
                            $tmpexpo = explode('/',$args[$k]);
                            $result[$k] = ($tmpexpo[0]/$tmpexpo[0]).'/'.($tmpexpo[1]/$tmpexpo[0]).'s';
                        }
                        break;
                    case 'FocalLength':
                        $result[$k] = $args[$k];
                        if(strpos($args[$k],'/') !==false){
                            $tmpfocal    = explode('/',$args[$k]);
                            $result[$k] = ($tmpfocal[0]/$tmpfocal[1]).'mm';
                        }
                        break;
                    default: $result[$k] = $args[$k];
                }
            }
        }
    return $result;
    }
    
    # MAKENOTE
    public function getMakenote()
    {
        $result = array();
        if($this->exifargs['MAKENOTE']){
            $args =& $this->exifargs['MAKENOTE'];
            foreach($this->setkey_args['makenote'] as $k){
                $result[$k] = $args[$k];
            }
        }
    return $result;
    }
    
    # °ªÀÌ ÀÖ´Â °Íµé¸¸ Çѹø¿¡ ÃßÃâÇϱâ
    public function getAvailable(){
        $args = array();
        if(count($this->exifargs)){
            foreach($this->setkey_args as $k => $v){
                $methodName = 'get'.ucwords($k);
                $args += call_user_func_array(array(&$this, $methodName), array());
            }
        }
    return $args;
    }
}
?>



À§¿¡ ÀÖ´Â exif Ŭ·¡½º¸¦ »ó¼Ó¹Þ¾Æ
ºäŬ·¡½º¸¦ ¸¸µé¾î »ç¿ëÇϸé ÁÁ½À´Ï´Ù.

ºä Ŭ·¡½º¿¡¼­ ÆÄÀÏű׿¡ ´ëÇÑ Çѱ۸í ÀÚµ¿Ãâ·ÂÀ» ¼³Á¤ÇÏ¸é ´õ ÆíÇÏ°ÚÁÒ...

ÀÏ´Ü À§ Ŭ·¡½º Å×½ºÆ®

<?php
$path = $_SERVER['DOCUMENT_ROOT'];
include_once $path.'/config/config.php';

try{
    $out->outPrintln("<img src='./testdirectory/P100119003.jpg'>");
    $exif = new ImageExif($path.'/testdirectory/P100119003.jpg');
    $args = $exif->getAvailable();
    if(is_array($args)){
        foreach($args as $k =>$v){
            if(!empty($v)){
                $out->outPrintln($k.' : '.$v);
            }
        }
    }
    
    $out->outPrintln("----------------------------");
    
    $out->outPrintln("<img src='./testdirectory/DSC_0369.JPG'>");
    $exif2 = new ImageExif($path.'/testdirectory/DSC_0369.JPG');
    $args2 = $exif2->getAvailable();
    if(is_array($args2)){
        foreach($args2 as $k2 =>$v2){
            if(!empty($v2)){
                $out->outPrintln($k2.' : '.$v2);
            }
        }
    }
}
catch(ErrorReporter $e){
    $out->outPrintln($e->getTraceText());
    $out->outPrintln($e->getMessage());
    if( $e->getCode() ) $out->outPrint($error_msg[$e->getCode()]);
}
?>
ÃßõÃßõ : 595 Ãßõ ¸ñ·Ï
¹øÈ£ Á¦¸ñ
2,891
ÀÔ·Â Çʵ忡¼­ ƯÁ¤´Ü¾î(¿¹:#err)°¡ Æ÷ÇԵǾúÀ» ¶§ ½Ç½Ã°£ °¨Áö ¹× °æ°íâ ¶ç¿ì±â
2,890
µ¥ÀÌÅͺ£À̽º ÃÖÀûÈ­¿Í Äõ¸® È¿À²¼ºÀ» ³ôÀÌ °Ë»ö ¼º´ÉÀ» °³¼±ÇÏ´Â ¹æ¹ý
2,889
°£´ÜÇÑ °Ô½ÃÆÇ ¸¸µé±â
2,888
PHPÀÇ php.ini ÆÄÀÏ¿¡¼­ ¼³Á¤ÇÒ ¼ö ÀÖ´Â ÁÖ¿ä Ç׸ñµéÀ» Ä«Å×°í¸®º°·Î Á¤¸®
2,887
À¯Æ©ºê µ¿¿µ»óÀÇ ½æ³×ÀÏ À̹ÌÁö¸¦ üũÇÏ¿© À¯È¿ÇÑ ¿µ»óÀ̾ƴҶ§ ¿¬°áµÈ üũ¹Ú½º¸¦ ÀÚµ¿À¸·Î üũ
2,886
À̹ÌÁö URLÀÌ À¯È¿ÇÏÁö ¾ÊÀ» ¶§, ÇØ´ç À̹ÌÁö¿Í ¿¬°áµÈ üũ¹Ú½º¸¦ ÀÚµ¿À¸·Î üũ
2,885
HTTPS·Î Á¢¼ÓÇÑ »ç¿ëÀÚ¸¦ °­Á¦·Î HTTP·Î ¸®µð·º¼Ç ÇÏ·Á¸é
2,884
PHP¿¡¼­ MP3 ÆÄÀÏÀ» Á÷Á¢ ÀÐ°í ½ºÆ®¸®¹Ö Çϱâ
2,883
ÇöÀç ÆäÀÌÁö°¡ location.reload()¿¡ ÀÇÇØ »õ·Î°íħµÇ¾ú´ÂÁö
2,882
ÅؽºÆ® ÆÄÀÏÀ» Àаí, °¢ ÁÙÀÇ ³¡¿¡¼­ 6±ÛÀÚ¸¦ »èÁ¦ÇÑ ÈÄ, °á°ú¸¦ »õ·Î¿î ÆÄÀÏ¿¡ ÀúÀåÇÕ´Ï´Ù.
2,881
cURLÀ» »ç¿ëÇÏ¿© ¸®´ÙÀÌ·ºÆ®¸¦ µû¶ó°¡ ÃÖÁ¾ URL °¡Á®¿À±â
2,880
[PHP] $_SERVER ȯ°æº¯¼ö
2,879
10Áø¼ö <-> 16Áø¼ö º¯È¯±â PHP¼Ò½º
2,878
ÅؽºÆ®¿¡ Á÷Á¢ ±×¶óµ¥ÀÌ¼Ç »ö»óÀ» Àû¿ëÇÏ·Á¸é?
2,877
CSS¸¦ »ç¿ëÇÏ¿© ¿ä¼ÒÀÇ ³»¿ë¹°¿¡ µû¶ó width¸¦ Á¶Á¤ÇÏ´Â ¹æ¹ý
2,876
À¥¼­¹ö ip È®ÀÎ
2,875
À¥È£½ºÆÃÀÇ Àý´ë°æ·Î¸¦ È®ÀÎ
2,874
input ÀÔ·Â ÇÊµå ¾ÕµÚ °ø¹é ½Ç½Ã°£ Á¦°Å
2,873
Placeholder Æ÷Ä¿½º½Ã °¨Ãß±â
2,872
MySQL Áߺ¹µÈ µ¥ÀÌÅ͸¦ »èÁ¦
2,871
MySQL Áߺ¹ µ¥ÀÌÅÍ È®ÀÎ
2,870
sessionStorage.getItem ¿Í sessionStorage.setItem
2,869
Á¦ÀÌÄõ¸® ·£´ýÀ¸·Î ¹è°æ»ö º¯°æ
2,868
preg match¿¡ °üÇÑ Á¤±Ô½Ä
2,867
Stream an audio file with MediaPlayer ¿Àµð¿À ÆÄÀÏ ½ºÆ®¸®¹Ö Çϱâ
2,866
Audio Streaming PHP Code
2,865
PHP $ SERVER ȯ°æ º¯¼ö Á¤¸®
2,864
Vimeo (ºñ¸Þ¿À) API ¸¦ »ç¿ëÇÏ¿© Ç÷¹À̾î ÄÁÆ®·ÑÇϱâ
2,863
iframe »ç¿ë½Ã ÇÏ´Ü¿¡ ¹ß»ýÇÏ´Â °ø¹é Á¦°Å¹æ¹ý
2,862
¾ÆÀÌÇÁ·¹ÀÓ(iframe) Àüüȭ¸é °¡´ÉÇÏ°Ô Çϱâ
¸ñ·Ï
¹ÂÁ÷Æ®·ÎÆ® ºÎ»ê±¤¿ª½Ã ºÎ»êÁø±¸ °¡¾ßµ¿ ¤Ó °³ÀÎÁ¤º¸Ãë±Þ¹æħ
Copyright ¨Ï musictrot All rights reserved.