কোনও সিরিজ চিত্রের ফাইলের অখণ্ডতা যাচাই করার জন্য কোনও সরঞ্জাম আছে?


21

কখনও কখনও আপনি যখন কোনও চিত্র ডাউনলোড করেন এবং সংযোগটি মাঝের স্রোতটিকে ভেঙে দেয়, তখন আপনার অর্ধেক ডাউনলোড করা চিত্রটি থেকে যায়। যদি আপনি এটি দেখার চেষ্টা করেন তবে আপনি চিত্রের উপরের অংশটি পাবেন এবং নীচের অংশটি সাধারণত ধূসর বা সবুজ বা অন্য কোনও রঙের হয়। অন্য কথায়, এটি দূষিত।

চিত্রটি সেভাবে ক্ষতিগ্রস্থ হয়েছে কি না অন্যথায় দূষিত হয়েছে কিনা তা যাচাই করার কোনও উপায় আছে কি?

উত্তর:


15

আপনি যদি জেপিজি ফাইলগুলির বিষয়ে কথা বলছেন তবে ইউটিলিটি জেপিগেনফো হ'ল আপনি যা খুঁজছেন তা। এটি বিভিন্ন ধরণের জেপিজি ত্রুটি এবং দুর্নীতির জন্য ফাইলগুলি চেক করতে পারে এবং হয় ত্রুটি কোডটি (স্ক্রিপ্টিংয়ের জন্য সবচেয়ে দরকারী জিনিস) ফিরিয়ে দেয়, বা কেবল ত্রুটিযুক্ত ফাইলগুলি মুছতে পারে।

ম্যানুয়াল পরীক্ষার উপর নির্ভর না করে সবকিছু ঠিকঠাক করা হয়েছে তা নিশ্চিত করার জন্য, আমি এটি আমার প্রাথমিক ফাইল স্থানান্তরের অংশ হিসাবে ব্যবহার করি। (তার পরে, আমি নিশ্চিত করি যে আমার চেকসামগুলি আমার সাধারণ ব্যাকআপ / বিট্রোট সুরক্ষার অংশ হিসাবে পরিবর্তন হয় না))

প্রোগ্রামটি কমান্ড-লাইন, এবং উত্স কোড হিসাবে আসে, তবে যেকোন লিনাক্স বিতরণে বা কোনও ম্যাকের উন্নত পরিবেশের সাথে সঠিকভাবে সেট আপ করা বা ব্যবহার করা সহজ হওয়া উচিত। আমি নিশ্চিত যে আপনি এমনকি সাইগউইন বা মিনজিডাব্লু দিয়ে উইন্ডোজে এটি করতে পারতেন। (উদাহরণস্বরূপ, যদিও আমি এর নিষ্ঠার জন্য কোন প্রমাণ দিতে পারি না, এই ব্লগ পোস্টটি বৈধ বলে মনে হচ্ছে এবং এতে একটি পূর্বনির্ধারিত ডাউনলোড অন্তর্ভুক্ত রয়েছে)) এটি নিজেকে তৈরি করতে:

$ git clone https://github.com/tjko/jpeginfo.git
Cloning into 'jpeginfo'...
[...]
Checking connectivity... done
$ cd jpeginfo/
$ ./configure && make

এটি এমন একটি jpeginfoকমান্ড তৈরি করবে যা আপনি হয় তা জায়গায় চালাতে পারেন বা আপনি যেখানে চান সেখানে অনুলিপি করতে (সম্ভবত ব্যবহার করছেন make install)।

তারপরে, আপনি এটি এভাবে চালান:

$ ./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]

এখানে, test1.jpg পুরোপুরি ঠিক আছে, এবং test2.jpg আমি শেষ থেকে কয়েক বাইট মুছে ফেলেছি এবং test3.jpg আমি শিরোনামে কিছু এলোমেলো বাইট পরিবর্তন করেছি।

যদি আপনার কাছে র ফাইল থাকে তবে আমেরিকান সোসাইটি অফ মিডিয়া ফটোগ্রাফারদের ডিএনজি যাচাইকরণের এই পৃষ্ঠাটি দেখুন বা ডেটা বৈধকরণের বিশদ সম্পর্কিত একটি , যা ব্যাচ-বৈধতা স্বত্বাধিকারী RAW ফর্ম্যাটগুলিতে অ্যাডোবের ডিএনজি রূপান্তরকারী ব্যবহার করে। (দুর্ভাগ্যক্রমে, এটি একটি জিইউআই অপারেশন এবং এটি সহজে স্ক্রিপ্টযোগ্য নয় able)

আপনার যদি এমন কোনও ক্যামেরা থাকে যা মূলত ডিএনজির 1.2 সংস্করণকে আউটপুট দেয় তবে এটি আরও ভাল, কারণ এতে চিত্রের ডেটার অন্তর্নির্মিত MD5 চেকসাম অন্তর্ভুক্ত রয়েছে। দুর্ভাগ্যক্রমে, এটি সাধারণ চিত্র মেটাডেটা সহ সঞ্চয় করা বলে মনে হচ্ছে না - বা কমপক্ষে এক্সিফটোল এবং এক্সিভ 2 এটি সনাক্ত করতে পারে না এবং তারা সাধারণভাবে 1.2 ডিএনজি ফাইল পড়ে - যার অর্থ আমি বর্তমানে অ্যাডোব বৈধতা জানি হাতিয়ারটিও এর সুবিধা নেওয়ার একমাত্র উপায়।


আপনি কি জানেন যে জেপিগেনফো-র উইন্ডোজ বাইনারিগুলি কোথাও রয়েছে কি না?
দাড়কাক

1
গিট ক্লোন দ্বারা jpeginfo সরঞ্জাম ব্যবহার করা উইন্ডোজে সম্ভব বলে মনে হচ্ছে না, কারণ 'aux' একটি উইন্ডোজ সংরক্ষিত নাম বলে মনে হয়, এবং গিট উল্লিখিত ডিরেক্টরিটিকে অস্তিত্বের মধ্যে ক্লোন করতে পারে না।
দাড়কাক

--- এখানে অন্য পোস্ট থেকে কথোপকথন আবার শুরু; সংরক্ষণাগারটি আনজিপ করা 'অক্স' এর কারণে একটি ত্রুটি দেয়। সংরক্ষণাগারটির মধ্যে 'অক্স' নামকরণ আনজিপিং এবং তারপরে নাম পরিবর্তন করে এটি আবার 'অক্স' নাম করে সাইগউইনের মধ্যে দিয়ে সমস্যার সমাধান করে solved তবে সাইগউইন থেকে চালানো মেকিংয়ের ফলে এখনও অনেক ত্রুটি হয়েছিল; কিছু সম্পর্কে wrjpgcom.c: 87: 54: সতর্কতা: অন্তর্নির্মিত ফাংশন 'প্রস্থান' এর বেমানান অন্তর্নিহিত ঘোষণা [ডিফল্টরূপে সক্ষম] # নির্ধারিত ERREXIT (msg) (fprintf (stderr, "% s \ n", msg), প্রস্থান (EXIT_FAILURE)) (ঠিক অনেক এক)
দাড়কাক

@ldigas আমি একটি MinGW বাইনারি তৈরি করেছি যা আপনি mattdm.org/misc/jpeginfo-w32/jpeginfo.exe এ খুঁজে পেতে পারেন । আমি লিনাক্স এই নির্মিত একটি ক্রস-কম্পাইল এক্সিকিউটেবল, তাই এটি পরীক্ষা করা হয়েছে, কিন্তু এটা করলো গড়ে তুলতে ঠিক আছে। আমি প্রতিশ্রুতি দিতে পারি না যে এটি কাজ করে, তবে আমি প্রতিশ্রুতি দিচ্ছি যে এটি কেবলমাত্র প্রবাহের কোড এবং কোনও ভাইরাস বা কিছুই নেই। :)
ম্যাটডেম

আপনি যে প্রচেষ্টা করছেন তার জন্য কয়েক মিনিট আগে এটি উত্সাহিত করা হয়েছে, তবে উইন্ডোজে এটি বেশ ভালভাবে কাজ করছে বলে মনে হয় না। jpeginfo -c any_jpeg_file.jpg আমি এটি সরবরাহ করেছি, মনে হচ্ছে জেপিইজি ফাইলের অকালপ্রান্তের শেষের দিকে জেপিইজি ডেটাস্ট্রিমের কোনও চিত্র নেই [ERROR]।
দাড়কাক

2

ইমেজভিরিফায়ার আপনি যা চেয়েছিলেন তা করেছে। দুর্ভাগ্যক্রমে এটি আর ডাউনলোডের জন্য উপলভ্য নয় এবং 31-ডিসেম্বর -2017 -এ সমর্থন বন্ধ করা হয়েছে (দেখুন ইনজেষ্টাম্যাটিক এবং ইমেজভিরিফায়ার আর বিক্রয়ের জন্য নেই )।

Historicalতিহাসিক কারণে পুরানো উত্তর

ইমেজভেরিফায়ার (সংক্ষিপ্ত জন্য IV) যাচাই করার জন্য চিত্র ফাইলগুলির সন্ধানকারী ফোল্ডারগুলির একটি শ্রেণিবিন্যাসকে অনুসরণ করে। এটি টিআইএফএফ, জেপিইজি যাচাই করতে পারে। পিএসডি, ডিএনজি, এবং নন-ডিএনজি কর্ণ (যেমন, এনইএফ, সিআর 2)।

IV প্রচুর সংখ্যক চিত্র প্রক্রিয়া করার জন্য ডিজাইন করা হয়েছে। ১০,০০,০০০ চিত্র বা আরও বেশি ফোল্ডার সহচরীকরণগুলির কোনও সমস্যা হওয়া উচিত নয়। এক পরীক্ষায়, চতুর্থটি 14 ঘন্টা চালিয়েছিল।

আইভির দুটি ধরণের যাচাইকরণ রয়েছে: স্ট্রাকচার চেকিং এবং হ্যাশ চেকিং।

http://basepath.com/site/detail-ImageVerifier.php


দেখে মনে হচ্ছে আপনি ইমেজভিরিফায়ারের সাথে যুক্ত আছেন, যদি তা হয় তবে দয়া করে আপনার উত্তরে এটি প্রকাশ করতে পারেন।
অসম্মানিত সত্যগুলি

1
আমি পণ্যের সাথে মোটেই যুক্ত নই। এনএএস ক্র্যাশ হওয়ার পরে এই সরঞ্জামটি ব্যবহার করার পরে আমার কিছু চিত্র ফাইল যাচাই করা দরকার ছিল। আমি কেবল বিবরণ দেওয়ার জন্য সাইট থেকে আটকানো টেক্সট কেটেছি।
কেজ

FWIW - ক্যামেরা ফাইলের জন্য তার ভাল (jpgs এবং বিভিন্ন 'র' ফরম্যাটের - তার প্রাথমিক উদ্দেশ্য ব্যবহার) কিন্তু না, তাই কোডেক ছাড়া অন্যান্য প্রকারের ফাইল, ইত্যাদি ImageMagick এর -identify ফাংশন জন্য ভাল অন্য বিকল্প
Kez

1

এটি যদি আপনার ক্যামেরা থেকে চিত্রগুলি ডাউনলোড করার বিষয়ে না হয় তবে কম্পিউটার থেকে কম্পিউটারে স্থানান্তর, অখণ্ডতার সাথে ফাইলের একটি সাধারণ পদ্ধতির নাম চেকসাম

দুর্ভাগ্যক্রমে, যতদূর আমি জানি, সাধারণ "শেষ ব্যবহারকারী" ইমেজ ফর্ম্যাটগুলি (জেপিগ, পিএনজি, জিআইএফ, ...) তাদের নিজেরাই সততা-যাচাই করা হয় না। তবে আমি যেমন স্বয়ংক্রিয় প্রক্রিয়াজাতকরণ বোঝাতে প্রশ্নটি বুঝতে পারি , তেমনি ওয়ার্কফ্লোতে চেকসাম সরঞ্জামগুলি ( সিআরসি 32 , এমডি 5 ,…) একীকরণ করা একটি কার্যকর সমাধান হতে পারে। একটি সাধারণ পদ্ধতির চেকসাম সঞ্চয় করতে একই ফাইলের নাম সহ একটি ফাইল মত, শুধু একটি যোগ এক্সটেনশন সঙ্গে, আছে হল: img123.jpg → img123.jpg.md5

এই পদ্ধতির অতিরিক্ত সুবিধা রয়েছে যা আপনি (যেমন) সিডিকার ফাইলগুলি বা অন্য কোনও কিছুতে আপনি অনুরূপ পদ্ধতিতে স্থানান্তর করতে চান এর সততাও পরীক্ষা করতে পারেন। এবং যদি আপনি চেকসাম ফাইলগুলি প্রায় ভবিষ্যতে রাখেন। (এবং এটি আমার সীমিত জ্ঞানের পরিমাণে পিএস, এলআর বা অন্যান্য সাধারণ সরঞ্জামগুলিতে একীভূত না হওয়ার খারাপ দিক রয়েছে))


1
এটি লক্ষণীয় যে ডিএনজিতে একটি চেকসাম রয়েছে এবং এটি সরাসরি লাইটরুমে যাচাই করা যেতে পারে।
হাম্পাস নীলসন

আমি সেটা সম্পর্কে সচেতন ছিলাম না! চমৎকার। বুদ্ধিও বোধ করে। আমি পরিষ্কার করার জন্য উত্তরটি সম্পাদনা করেছি আমি আর্কাইভ ফর্ম্যাটগুলির চেয়ে "শেষ ব্যবহারকারী" ফর্ম্যাটগুলির চেয়ে বেশি লক্ষ্য রেখেছি, যদিও এটি মিষ্টি যে ডিএনজি চেকসামগুলিতে সহায়তা করে।
কর্নেলিয়াস

মূল ফাইলগুলির সাথে ব্যাকআপ মিডিয়ামে অনুলিপি করা MD5 চেকসাম ফাইলগুলি গণনা করতে আমি ইরিস হালিউলিনের "অ্যাডভান্সড চেকসাম ভেরিফায়ার" (এসিএসভি) ব্যবহার করি। এসিএসভি ব্যাচ বা ইন্টারেক্টিভ চলমান। অনুলিপিটির অখণ্ডতা যে কোনও সময় চেকসামটি পুনরায় গণনা করে এবং মূলের সাথে তুলনা করে যাচাই করা যেতে পারে।
পিয়েরে

1

আমি চেক_মিডিয়া_ইন্টিগ্রেটি একটি সাধারণ অজগর স্ক্রিপ্ট তৈরি করেছিcheck_mi.py , আপনি এটি গিটহাব থেকে ডাউনলোড করতে পারেন:

https://github.com/ftarlao/check-media-integrity

আমি গাইড পরিচয় উদ্ধৃত:

চেক-মাই একটি পাইথন ২.7 স্ক্রিপ্ট যা স্বয়ংক্রিয়ভাবে মিডিয়া ফাইলগুলির অখণ্ডতা পরীক্ষা করে (চিত্র, ভিডিও, অডিও)। আপনি কোনও একক ফাইলের অখণ্ডতা বা ফোল্ডার এবং সাবফোল্ডারগুলিতে পুনরাবৃত্তভাবে ফাইলগুলির সেট পরীক্ষা করতে পারেন, শেষ পর্যন্ত আপনি সিএসভি ফর্ম্যাটে খারাপ পথগুলির তালিকা এবং বিশদ সহ তাদের আউটপুট করতে পারেন।

সরঞ্জামটি সাধারণ লাইব্রেরিগুলি (বালিশ, চিত্রম্যাগিক, এফএফপিপিগ) ব্যবহার করে এবং মিডিয়া ফাইলগুলি ডিকোড করতে কার্যকরভাবে সক্ষম হয় কিনা তা পরীক্ষা করে ফাইল অখণ্ডতা পরীক্ষা করে। সতর্কতা, চিত্র, অডিও এবং ভিডিও ফর্ম্যাটগুলি ত্রুটিগুলি এবং ক্ষতির জন্য খুব স্থিতিস্থাপক কারণ এই সরঞ্জামটি সমস্ত ক্ষতিগ্রস্থ ফাইলগুলি সনাক্ত করতে পারে না।

চেক-মাই 100% আত্মবিশ্বাসের সাথে, এমন শিরোনাম / মেটাডেটা ভাঙ্গা ফাইল, কাটা চিত্রযুক্ত ফাইলগুলি (স্ট্রাইক_ লেভেল> 0) এবং ডিভাইস i / o এর ত্রুটিগুলি সন্ধান করতে সক্ষম।

চেক-মাই সাধারণত সমস্ত ছোট ক্ষয়ক্ষতি সনাক্ত করতে সক্ষম হয় না - যেমন মিডিয়া ফাইলের ছোট্ট অংশটি বিভিন্ন মান সহ ওভাররাইট করা হয়। বিশদভাবে, আমি একটি কঠোর_সামগ্রী 1 একটি ছোট এলোমেলোভাবে পরীক্ষার মাধ্যমে পরীক্ষা করেছি, একটি একক 5 এমবি জেপিগ ছবিতে সম্পাদন করেছি:

জিরো সহ চিত্র ফাইলের একটি অংশ (বিরতি) ওভাররাইটিং করে ক্ষতি সনাক্তকরণের 50% সুযোগ পাওয়ার জন্য আপনার বিরতি আকার = 1024 কেবাইট প্রয়োজন। বিভিন্ন এলোমেলো মান সহ চিত্র ফাইলের একটি অংশ (বিরতি) ওভাররাইট করে আপনি 4096 বাইটস থেকে 1024 কেবিটস পর্যন্ত অন্তর আকারের জন্য প্রায় 85% সনাক্তকরণ অনুপাত পাবেন।

ক্ষেত্রে ডিকোডিংয়ের সময় আপনি বালিশ, ওয়ান্ড এবং এফএফপিপেগকে আরও কঠোর হতে নির্দেশ দেওয়ার উপায়গুলি জানেন তবে দয়া করে আমাকে বলুন।


0

গৃহীত উত্তরটি জেপিগেনফো ব্যবহার করে, যা সিতে লিখিত সত্যই একটি পুরানো এবং অ-রক্ষণাবেক্ষণকারী সরঞ্জাম (এবং খুব মডুলার / এক্সটেনসিবল নয়)। এছাড়াও, সেই সরঞ্জামটি কিছু নির্দিষ্ট এক্সআইএফ ডেটা পয়েন্ট ( । 5 মিনিটের জন্য উত্স কোডের মাধ্যমে স্কিম ) সন্ধান করবে বলে মনে হচ্ছে ।

আইএমও, ফাইল-টাইপ নামে পরিচিত একটি আরও ভাল সরঞ্জাম ব্যবহার করা খুব সহজ - মূলত তাদের উদাহরণ কোডটি কপি-পেস্ট করুন এবং আপনি কীভাবে কোডিং করতে না জানলে ফাইলের নাম পরিবর্তন করুন। এটি নির্দিষ্ট পরিচিত ফাইল টাইপের সাথে যুক্ত ম্যাজিক নম্বরগুলি পরীক্ষা করে এবং আপনাকে কী ধরণের ফাইল নিয়ে কাজ করছে তা আপনাকে জানায়।

আমি এখনও এটির চেয়ে আরও বেশি স্তর সুরক্ষা খুঁজছি। উদাহরণস্বরূপ, যদি নির্বিচারে ডেটা EXIF ​​মেটাডেটা অতীতে (বা মধ্যে) সঞ্চিত থাকে বা যাদু সংখ্যার পরে, এটি সুরক্ষার সমস্যা তৈরি করতে পারে। আমি আরও সুরক্ষা ব্যবস্থা গ্রহণ করা চালিয়ে যাব এবং পরে এই উত্তরটি আপডেট করার আশা করব।

অলসতার জন্য তাদের ওয়েবপৃষ্ঠা থেকে অনুলিপি করা কোড কোডটি এখানে:

// Node.js
const readChunk = require('read-chunk');
const fileType = require('file-type');

const buffer = readChunk.sync('unicorn.png', 0, fileType.minimumBytes);

fileType(buffer);
//=> {ext: 'png', mime: 'image/png'}

এফওয়াইআই, এই সরঞ্জামটি ধারাবাহিকভাবে আপডেট করা হচ্ছে (3 দিন আগে এখানে আমার মূল উত্তর হিসাবে সর্বশেষ আপডেট ছিল), এবং তাদের বর্তমানে 3,691,850 সাপ্তাহিক ডাউনলোড রয়েছে - এটি সম্ভবত একটি ভাল ইঙ্গিত।


সাধারণ ম্যাজিক নম্বর ভিত্তিক ফাইল ধরণের শনাক্তকারীরা সাধারণত প্রথম এন বাইটগুলিতে ফোকাস করে, সুতরাং এটি আংশিক প্রতিশ্রুতিবদ্ধ চিত্র ফাইলের সাথে সাহায্য করতে পারে না, যা এখানে উত্থাপিত প্রশ্নের ভিত্তি। অর্থাৎ, একটি জেপিজি বা পিএনজি থাকা খুব সাধারণ বিষয় যে পসিক্স file(যা একই পদ্ধতিতে কাজ করে) সঠিকভাবে রিপোর্ট করবে তবে রেন্ডার করতে ব্যর্থ হবে কারণ বেশিরভাগ ডেটা আসলে অনুপস্থিত।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.