Skip to content

Catatan buruh IT

  • Home
  • Demos
  • Download
  • PHP
  • MySQL
  • HTML
  • Jquery
  • CSS
  • Linux
  • javascript
  • Networking

foto

[Tips] Membaca Metadata Image JPEG/TIFF dengan PHP

Posted on May 22, 2012May 22, 2012 by bimosaurus

PHP memiliki kemampuan membaca image / gambar. Dengan kemampuan itu tentu saja PHP mampu membaca data-data asal yang terdapat dalam image tersebut. Biasanya data tersebut dinamakan metadata. Proses pembacaan metadata itu cukup mudah, yaitu dengan memanfaatkan fungsi exif_read_data(). Misal saya memiliki sebuah gambar berekstensi JPEG dengan nama satu.JPEG, yang berasal dari hasil jepretan kamera digital. Maka data asal dari gambar tersebut dapat dibaca dengan perintah berikut :

$data = exif_read_data('images/satu.jpg');
echo "< pre >";
print_r( $data );
echo "< /pre >";

Data yang muncul kira-kira seperti berikut:

Array
(
    [FileName] => satu.jpg
    [FileDateTime] => 1335936620
    [FileSize] => 5441417
    [FileType] => 2
    [MimeType] => image/jpeg
    [SectionsFound] => ANY_TAG, IFD0, THUMBNAIL, EXIF, INTEROP
    [COMPUTED] => Array
        (
            [html] => width="4320" height="3240"
            [Height] => 3240
            [Width] => 4320
            [IsColor] => 1
            [ByteOrderMotorola] => 0
            [ApertureFNumber] => f/2.9
            [UserComment] => 
            [UserCommentEncoding] => UNDEFINED
            [Copyright] => Copyright 2010
            [Thumbnail.FileType] => 2
            [Thumbnail.MimeType] => image/jpeg
        )

    [ImageDescription] => 
    [Make] => BenQ Corporation
    [Model] => DC C143X
    [Orientation] => 1
    [XResolution] => 288/3
    [YResolution] => 288/3
    [ResolutionUnit] => 2
    [Software] => 1.7600
    [DateTime] => 2012:05:02 12:30:21
    [YCbCrPositioning] => 2
    [Copyright] => Copyright 2010
    [Exif_IFD_Pointer] => 322
    [THUMBNAIL] => Array
        (
            [Compression] => 6
            [Orientation] => 1
            [XResolution] => 72/1
            [YResolution] => 72/1
            [ResolutionUnit] => 2
            [JPEGInterchangeFormat] => 4290
            [JPEGInterchangeFormatLength] => 7287
            [YCbCrPositioning] => 2
        )

    [ExposureTime] => 1/279
    [FNumber] => 29/10
    [ExposureProgram] => 2
    [ISOSpeedRatings] => 100
    [ExifVersion] => 0220
    [DateTimeOriginal] => 2012:05:02 12:30:21
    [DateTimeDigitized] => 2012:05:02 12:30:21
    [ComponentsConfiguration] => �
    [CompressedBitsPerPixel] => 500/100
    [ShutterSpeedValue] => 8124/1000
    [ApertureValue] => 3071/1000
    [ExposureBiasValue] => 0/100
    [MaxApertureValue] => 3171/1000
    [MeteringMode] => 4
    [LightSource] => 0
    [Flash] => 24
    [FocalLength] => 6300/1000
    [MakerNote] => 
IP1:1 exp 130 agc: 95 cal_agc : 128 P2C : 16
.
.
.

dan seterusnya. Hanya diambil sebagian karena cukup panjang. Pada bagian tersebut terlihat hampir semua properti pembuatan gambar tersebut. Antara lain dibuat kapan, dengan menggunakan kamera apa, ukuran berapa. Untuk keperluan programming biasanya hasil ini akan diatur dengan penguraian array lanjut. Antara lain kira-kira seperti berikut:


$data = exif_read_data('images/satu.jpg');
foreach($data as $key=>$val) {
    if(is_array($val)) {
        foreach($val as $k=>$v) {
            echo $key."[$k]: $v
\n"; } } else echo "$key: ".@substr($val,0,40)."
\n"; }

Hasilnya kira-kira akan seperti berikut:


FileName: IMG_0495.JPG

FileDateTime: 1335936620

FileSize: 5441417

FileType: 2

MimeType: image/jpeg

SectionsFound: ANY_TAG, IFD0, THUMBNAIL, EXIF, INTEROP

COMPUTED[html]: width="4320" height="3240"

COMPUTED[Height]: 3240

COMPUTED[Width]: 4320

COMPUTED[IsColor]: 1

COMPUTED[ByteOrderMotorola]: 0

COMPUTED[ApertureFNumber]: f/2.9

COMPUTED[UserComment]: 

COMPUTED[UserCommentEncoding]: UNDEFINED

COMPUTED[Copyright]: Copyright 2010

COMPUTED[Thumbnail.FileType]: 2

COMPUTED[Thumbnail.MimeType]: image/jpeg

ImageDescription: 

Make: BenQ Corporation

Model: DC C143X

Orientation: 1

XResolution: 288/3

YResolution: 288/3

ResolutionUnit: 2

Software: 1.7600

DateTime: 2012:05:02 12:30:21

YCbCrPositioning: 2

Copyright: Copyright 2010

Exif_IFD_Pointer: 322

THUMBNAIL[Compression]: 6

THUMBNAIL[Orientation]: 1

THUMBNAIL[XResolution]: 72/1

THUMBNAIL[YResolution]: 72/1

THUMBNAIL[ResolutionUnit]: 2

THUMBNAIL[JPEGInterchangeFormat]: 4290

THUMBNAIL[JPEGInterchangeFormatLength]: 7287

THUMBNAIL[YCbCrPositioning]: 2

ExposureTime: 1/279

FNumber: 29/10

ExposureProgram: 2

ISOSpeedRatings: 100

ExifVersion: 0220

DateTimeOriginal: 2012:05:02 12:30:21

DateTimeDigitized: 2012:05:02 12:30:21

ComponentsConfiguration: �

CompressedBitsPerPixel: 500/100

ShutterSpeedValue: 8124/1000

ApertureValue: 3071/1000

ExposureBiasValue: 0/100

MaxApertureValue: 3171/1000

MeteringMode: 4

LightSource: 0

Flash: 24

FocalLength: 6300/1000

MakerNote: 
IP1:1 exp 130 agc: 95 cal_agc : 128 P2C

UserComment: ����������������������������������������

SubSecTime: 0�

FlashPixVersion: 0100

ColorSpace: 1

ExifImageWidth: 4320

ExifImageLength: 3240

RelatedSoundFile: 

InteroperabilityOffset: 4260

FileSource: 

SceneType: 

ExposureMode: 0

WhiteBalance: 0

DigitalZoomRatio: 100/100

FocalLengthIn35mmFilm: 36

SceneCaptureType: 33

Contrast: 0

Saturation: 0

Sharpness: 0

InterOperabilityIndex: R98

InterOperabilityVersion: 0100




Dengan demikian, sebenarnya situs-situs fotografi, atau lomba fotografi akan dapat mengetahui bahwa sebenarnya gambar tersebut asli atau sudah ter-edit oleh software lain seperti potoshop dan lain sebagainya, meski ternyata metadata ini juga dapat dilakukan editing, yang akan kita pelajari dalam section lain. Ada yang berminat menjadi roy suryo moderen sebagai ahli metadata?? Silakan belajar lebih lanjut :). Untuk exif_read_data, hanya dapat digunakan jenis file JPG dan TIFF. Anda juga dapat mengkombinasikan dengan form upload file.

Sekian, semoga bermanfaat

Artikel terkait

  • [TIPS] Pesan ERROR “cannot modify header information – headers already sent by”
  • [TIPS] Contoh Cara Membuat Grafik Standard HTML Sederhana
  • [Contoh 1] Dasar Membuat Grafik dengan JPGraph di PHP
  • [Contoh] Cara Membuat Watermark Tulisan Pada Gambar dengan PHP
  • [Contoh] PHP, MySQL, JQuery Form Posting, Tanpa Autorefresh Halaman / Pindah Halaman
  • Replikasi Session Untuk PHP antar Host
  • [Tips] Menambah “Add More” Input Form
  • [Hacking] Database kosong tak Berpassword, berbahayakah?
Posted in PHPTagged exif, foto, image, metadata, photo, phpLeave a comment

Pages

  • About Personal Owner
  • Agenda
  • Contributor
  • Search Result
  • Tentang Blog Ini
  • Work

the tags

apache area array bash cara chat command contoh css download error excel export gd grafik graph graphing hacking html http image internet javascript jpgraph jqplot jquery js laporan linux load balancer map membuat mysql nginx no pear paging peta php reporting ssh upload virtualhost watermark web xls

Kategori

  • CSS
  • curl
  • hacking
  • Hardware
  • HTML
  • internet
  • javascript
  • Jquery
  • js
  • json
  • Jual
  • laptop
  • lfi
  • Linux
  • load balancer
  • MySQL
  • Networking
  • pengumuman
  • peta
  • PHP
  • SMS Gateway
  • ssh
  • tips
  • Uncategorized
  • Web Developing
  • webchat
  • webfolio
  • webserver
  • wordpress
Proudly powered by WordPress