웹마스터 팁

<?php

// This function is used to determine the camera details for a specific image. It returns an array with the parameters.
function cameraUsed($imagePath) {

    // Check if the variable is set and if the file itself exists before continuing
    if ((isset($imagePath)) and (file_exists($imagePath))) {
    
      // There are 2 arrays which contains the information we are after, so it's easier to state them both
      $exif_ifd0 = read_exif_data($imagePath ,'IFD0' ,0);       
      $exif_exif = read_exif_data($imagePath ,'EXIF' ,0);
  $exif_makernote = read_exif_data($imagePath ,'MAKERNOTE' ,'UndefinedTag');

//MAKERNOTE.UndefinedTag:0x0095: EF24-70mm f/2.8L II USM   

      //error control
      $notFound = "Unavailable";
      
      // Makernote 
      if (@array_key_exists('UndefinedTag', $exif_makernote)) {
        $camMakenote = $exif_makernote['UndefinedTag'];
      } else { $exif_makernote = $notFound; }
//$return['makernote'] = $camMakernote;
      // Make 
      if (@array_key_exists('Make', $exif_ifd0)) {
        $camMake = $exif_ifd0['Make'];
      } else { $camMake = $notFound; }
      
      // Model
      if (@array_key_exists('Model', $exif_ifd0)) {
        $camModel = $exif_ifd0['Model'];
      } else { $camModel = $notFound; }
      
      // Exposure
      if (@array_key_exists('ExposureTime', $exif_ifd0)) {
        $camExposure = $exif_ifd0['ExposureTime'];
      } else { $camExposure = $notFound; }

      // Aperture
      if (@array_key_exists('ApertureFNumber', $exif_ifd0['COMPUTED'])) {
        $camAperture = $exif_ifd0['COMPUTED']['ApertureFNumber'];
      } else { $camAperture = $notFound; }
      
      // Date //파일날자
      if (@array_key_exists('DateTime', $exif_ifd0)) {
        $camDate = $exif_ifd0['DateTime'];
      } else { $camDate = $notFound; }

      // Date2
      if (@array_key_exists('DateTimeOriginal', $exif_exif)) {
        $camDate2 = $exif_exif['DateTimeOriginal'];
      } else { $camDate2 = $notFound; }

      // ISO
      if (@array_key_exists('ISOSpeedRatings',$exif_exif)) {
        $camIso = $exif_exif['ISOSpeedRatings'];
      } else { $camIso = $notFound; }

//Software
      if (@array_key_exists('Software', $exif_ifd0)) {
        $camSoft = $exif_ifd0['Software'];
      } else { $camSoft = $notFound; }

//FocalLength
      if (@array_key_exists('FocalLength', $exif_exif)) {
        $camFocal = $exif_ifd0['FocalLength'];
      } else { $camFocal = $notFound; }


//Height
      if (@array_key_exists('Height', $exif_ifd0['COMPUTED'])) {
  $camHeight = $exif_ifd0['COMPUTED']['Height'];
      } else { $camHeight = $notFound; }

//Widht
      if (@array_key_exists('Width', $exif_ifd0['COMPUTED'])) {
  $camWidth = $exif_ifd0['COMPUTED']['Width'];
      } else { $camWidth = $notFound; }

      $return = array();
      $return['make'] = $camMake;
      $return['model'] = $camModel;
  $return['makernote'] = $camMakernote;
      $return['exposure'] = $camExposure;
      $return['aperture'] = $camAperture;
      //$return['date'] = $camDate; //파일날자
      $return['iso'] = $camIso;
  $return['soft'] = $camSoft;
  $return['focal'] = $camFocal;
  $return['height'] = $camHeight;
  $return['width'] = $camWidth;
  $return['date2'] = $camDate2;
      return $return;
    


    } else {
      return false; 
    } 
}
?>
<include target="/home/hosting_users/******/www/_data/exif/exif.php" />
{@
$imagePath=$file->uploaded_filename;
$img_size=getimagesize($imagePath);
$file_size=filesize($imagePath);
$file_size3=number_format($file_size);
$camera = cameraUsed($imagePath);
//echo "사용기종 : " . $camera['make'] . " " . $camera['model'] . " | ";
echo "사용기종 : " . $camera['model'] . " | ";
//echo "사용렌즈 : " . $camera['makernote'] . " | ";
echo "노출시간 : " . $camera['exposure'] . " | ";
echo "조리개 : " . $camera['aperture'] . " | ";
echo "ISO : " . $camera['iso'] . " | ";
echo "초점거리 : " . $camera['focal'] . " | ";
//echo "Software : " . $camera['soft'] . " | ";
echo "촬영일자 : " . $camera['date2'] . " | ";
//echo "해상도 : ".$camera['width'] ."x". $camera['height'];
echo "해상도 : ".$img_size[0]."x".$img_size[1]." px" . " | ";
//echo $img_size[3];
echo "파일크기 : ".$file_size3." byte";
//return FileSizeConvert($imagePath);
}

exif 출력 애드온이 제대로 작동하지않길래 php.net 에서 샘플을 긁어오고 살을 조금붙여서 사용하고있습니다.
잘 작동하네요 ^^

 

태그 연관 글
  1. [2010/11/22] 묻고답하기 도와주세요 ㅠ..ㅠ ; DQ_LIBS/include 폴더에서 파일하나를 삭제했는데 by 하나비839
제목 글쓴이 날짜
요즘 제가 jquery 웹앱 솔루션을 개발했습니다. file 안드류KIM 2018.04.03
게시판 본문읽기에서 컨텐츠 이미지와 텍스트 분리하여 출력하기 forest535 2018.04.09
EXIF 메타정보 필요하신 분 있으시면 forest535 2018.04.09
윈도우 8.1 및 윈도우10 에서 IIS + mysql + PHP 설치 [8] file HSJI 2014.07.21
IIS에서 HTTPS를 사용하기 위한 SSL설정 file ehii 2016.04.13
XEDITON 레이아웃에 다국어(국기) 선택 버튼 추가하기 [7] file ehii 2015.04.15
댓글을 역순으로 출력하는 팁 (최근댓글이 가장 위에) [8] sejin7940 2012.02.10
게시글 상하단에 광고삽입하기 veplay2 2018.03.08
winamp 방송정보 알아오기 (2005년 새로 코딩한 버전) [8] file 이승원 2005.05.06
[강추]!! 긁어와서 [자동]으로 게시글로!! [메타 블로그] php 로 넣기!!! xe블로그api를 이용한.. [51] file 김기철980 2009.01.29
css팁 : 웹폰트 저장소 Dotcomsoft 2018.01.17
css 팁 : 색상코드 검색이필요할때 Dotcomsoft 2018.01.17
모바일에서 유투브 동영상 크기 300px고정 [28] 패시브 2012.07.31
XE에 채팅 연동 하기 [1] younggyo 2017.12.15
bitnami ssl 클라우드플레어 설정법 키큰아이 2017.12.06
성공적인 홈페이지 제작을 위해 점검해야 될 사안 웹369 2017.12.05
제로보드에서 iframe 높이 자동(유동적)조절(파폭,IE, 오페라,사파리,IETester) [11] file hhgyu 2010.09.17
통합검색의 기본값을 '제목' 이 아니라 '제목+내용' 으로 하고 픈 경우 [2] sejin7940 2017.02.24
모바일앱, 모바일 어플에서 카카오톡, 카카오 스토리 앱으로 공유하기 한꼬마 2017.10.31
폰갭 모바일 사진 분석 부터 번역까지 아토피뉴스 2017.10.16