Jika Anda berbicara tentang file JPEG, maka utilitas jpeginfo persis seperti yang Anda cari. Itu dapat memeriksa file untuk berbagai jenis kesalahan JPEG dan korupsi dan mengembalikan kode kesalahan (hal yang paling berguna untuk skrip), atau hanya menghapus file dengan kesalahan.
Saya menggunakan ini sebagai bagian dari transfer file awal saya, untuk memastikan semuanya disalin baik-baik saja tanpa mengandalkan pemeriksaan manual. (Setelah itu, saya memastikan checksum mereka tidak berubah sebagai bagian dari cadangan / perlindungan bitrot normal saya.)
Program ini adalah command-line, dan datang sebagai kode sumber, tetapi harus mudah dibuat dan digunakan pada distribusi Linux atau pada Mac dengan lingkungan pengembangan yang diatur dengan benar. Saya yakin Anda bahkan dapat melakukannya di Windows dengan Cygwin atau MinGW. (Misalnya, meskipun saya tidak dapat menjamin integritasnya, posting blog ini tampaknya sah dan menyertakan unduhan yang dikompilasi sebelumnya.) Untuk membuatnya sendiri:
$ git clone https://github.com/tjko/jpeginfo.git
Cloning into 'jpeginfo'...
[...]
Checking connectivity... done
$ cd jpeginfo/
$ ./configure && make
Ini harus membuat jpeginfo
perintah yang bisa Anda jalankan di tempat atau menyalin di mana pun Anda inginkan (mungkin menggunakan make install
).
Kemudian, Anda menjalankannya seperti ini:
$ ./jpeginfo -c *.jpg
test1.jpg 1996 x 2554 24bit Exif P 6582168 [OK]
test2.jpg 1996 x 2554 24bit Exif P 6582116 Premature end of JPEG file [WARNING]
test3.jpg Corrupt JPEG data: 1 extraneous bytes before marker 0xe2 1996 x 2554 24bit Exif P 6582169 [WARNING]
Di sini, test1.jpg baik-baik saja, dan test2.jpg Saya menghapus beberapa byte dari akhir, dan test3.jpg Saya mengubah beberapa byte acak di header.
Jika Anda memiliki file RAW, periksa halaman ini dari American Society of Media Photographer di DNG Validation , atau satu di detail validasi data , yang mencakup menggunakan konverter DNG Adobe untuk mem-batch-memvalidasi format RAW eksklusif. (Sayangnya, ini adalah operasi GUI dan tidak harus dengan mudah skrip.)
Jika Anda memiliki kamera yang secara asli menampilkan versi 1.2 DNG, itu lebih baik, karena ini termasuk built-in MD5 checksum dari data gambar. Sayangnya, ini sepertinya tidak disimpan dengan metadata gambar normal - atau setidaknya exiftool dan exiv2 tidak mengenalinya, dan mereka membaca 1.2 file DNG secara umum - yang berarti sejauh yang saya tahu saat ini validasi Adobe Alat adalah satu-satunya cara untuk memanfaatkan itu juga.
ImageVerifier melakukan apa yang Anda inginkan. Sayangnya itu tidak tersedia untuk diunduh lagi dan dukungan telah dihentikan pada 31-Desember-2017 (lihat Ingestamatic dan ImageVerifier tidak lagi dijual ).
Jawaban lama karena alasan historis
ImageVerifier (IV singkatnya) melintasi hierarki folder yang mencari file gambar untuk diverifikasi. Itu dapat memverifikasi TIFF, JPEG. PSD, DNG, dan raw non-DNG (misalnya, NEF, CR2).
IV dirancang untuk memproses gambar dalam jumlah besar. Hirarki folder dengan 100.000 gambar atau lebih seharusnya tidak menjadi masalah. Dalam satu uji coba, IV berlari selama 14 jam.
Ada dua jenis verifikasi yang dilakukan IV: Memeriksa struktur dan memeriksa hash.
http://basepath.com/site/detail-ImageVerifier.php
sumber
Jika ini bukan tentang mengunduh gambar dari kamera Anda, tetapi transfer komputer ke komputer, pendekatan umum untuk integritas file adalah checksum .
Sayangnya, sejauh yang saya tahu, format gambar "pengguna akhir" yang umum (jpeg, png, gif, ...) tidak diperiksa integritasnya sendiri. Tetapi ketika saya memahami pertanyaan untuk menyiratkan pemrosesan otomatis, mengintegrasikan alat checksum ( CRC32 , MD5 , ...) ke dalam alur kerja bisa menjadi solusi yang layak. Pendekatan yang umum untuk menyimpan checksum adalah untuk memiliki sebuah file dengan nama file yang sama, hanya dengan ekstensi yang ditambahkan, seperti:
img123.jpg → img123.jpg.md5
.Pendekatan ini memiliki manfaat tambahan yaitu Anda juga dapat memeriksa integritas (misalnya) file sespan atau hal lain yang ingin Anda transfer dalam mekanisme yang sama. Dan jika Anda menyimpan file checksum di sekitar, bahkan di masa depan. (Dan itu memiliki kelemahan dari tidak terintegrasi dalam PS, LR, atau alat umum lainnya sejauh pengetahuan saya terbatas.)
sumber
Saya mengembangkan check_media_integrity skrip python sederhana
check_mi.py
, Anda dapat mengunduhnya dari GitHub:https://github.com/ftarlao/check-media-integrity
Saya mengutip panduan intro:
sumber
Jawaban yang diterima mengacu pada penggunaan jpeginfo, yang merupakan alat yang benar-benar tua dan tidak terawat yang ditulis dalam C (dan juga tidak sangat modular / dapat diperluas). Juga, alat itu tampaknya hanya mencari beberapa titik data EXIF tertentu (membaca kode sumber selama ~ 5 menit).
IMO, alat yang lebih baik disebut, tipe file , sangat mudah digunakan - pada dasarnya salin-tempel kode contoh mereka dan modifikasi nama file jika Anda tidak tahu bagaimana cara membuat kode. Ini memeriksa nomor ajaib yang terkait dengan tipe file tertentu yang diketahui dan memungkinkan Anda mengetahui jenis file yang Anda hadapi.
Saya masih mencari lebih banyak lapisan perlindungan dari ini. Misalnya, jika data sewenang-wenang disimpan melewati (atau dalam) metadata EXIF, atau setelah angka ajaib, itu dapat menimbulkan masalah keamanan. Saya akan terus mencari langkah-langkah keamanan yang lebih dan berharap untuk kemudian memperbarui jawaban ini.
Inilah contoh kode yang disalin dari halaman web mereka, untuk yang malas:
FYI, alat ini terus diperbarui (3 hari yang lalu adalah pembaruan terakhir, seperti jawaban asli saya di sini), dan mereka saat ini memiliki 3.691.850 unduhan mingguan - jadi itu mungkin indikasi yang baik.
sumber
file
(yang beroperasi dengan cara yang sama) akan melaporkan dengan benar, tetapi akan gagal untuk membuat karena banyak data yang sebenarnya hilang.