চিত্র ফাইলগুলি থেকে কীভাবে মেটাডেটা ফেলা যায়


17

[ ওপি কর্তৃক # 1 সম্পাদনা করুন: এই প্রশ্নটি এক্সিফটুল ফোরামের ডুপ্লিকেট থ্রেডে এক্সিফ্টোল স্রষ্টা / রক্ষণাবেক্ষণকারী ফিল হার্ভে বেশ উত্তম উত্তর দিয়েছেন ]

[ ওপি দ্বারা # 2 সম্পাদনা করুন: এক্সিফটুল এফএকিউ থেকে : সমস্ত মেটাডেটা মোছার চেষ্টা করার সময় এক্সিফটুল কোনও ফাইল থেকে সম্পূর্ণ मेटाটাটা সরিয়ে ফেলার গ্যারান্টিযুক্ত নয়'লেখকের সীমাবদ্ধতা' দেখুন]]

আমি আমার পুরানো হার্ড ড্রাইভগুলি ফটোগুলির জন্য অনুসন্ধান করতে চাই যা আমার বর্তমান ব্যাকআপ ড্রাইভে নেই। ফর্ম্যাটগুলির মধ্যে রয়েছে জেপিজি, পিএনজি, টিফ, ইত্যাদি ... পাশাপাশি বিভিন্ন কাঁচা ফর্ম্যাটগুলি (বিভিন্ন ক্যামেরা মডেল এবং নির্মাতারা)।

আমি কেবল চিত্রটির নিজস্বতার স্বতন্ত্রতায় আগ্রহী এবং ভিন্নতার কারণে নয়, বলুন, এক্সিফ ট্যাগগুলির মান, প্রদত্ত এক্সিফ ট্যাগের উপস্থিতি / অনুপস্থিতি, এম্বেড থাকা থাম্বনেইলস ইত্যাদি ...

যদিও আমি অন্য কোনও অভিন্ন চিত্রের অনুলিপিগুলির মধ্যে কোনও দুর্নীতি / ডেটা-পচা খুঁজে পাওয়ার আশা করি না, তবে আমি এটি সনাক্ত করতে চাই, পাশাপাশি আকার পরিবর্তন ও রঙ পরিবর্তনের কারণে পার্থক্যগুলিও খুঁজে পেতে চাই।

[ ওপি দ্বারা # 3 সম্পাদনা করুন: স্পষ্টতার জন্য: মিথ্যা পজিটিভের একটি সামান্য শতাংশ সহ্যযোগ্য (কোনও ফাইল যখন তা না হয়ে অনন্য হতে পারে) এবং মিথ্যা নেতিবাচকগুলি অত্যন্ত অনাকাঙ্ক্ষিত হয় (কোনও ফাইলকে নকল হিসাবে ভুলভাবে উপস্থাপন করা হয়)। ]

আমার পরিকল্পনাটি হ'ল এমডি 5sums এর ভিত্তিতে স্বতন্ত্রতা চিহ্নিত করতে হবে কোনও এবং সমস্ত মেটাডেটা সরিয়ে দেওয়ার পরে।

আমি কীভাবে মেটাডেটা কেটে ফেলব?

হবে exiftool -all= <filename>যথেষ্ট?


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

আমি ব্যবহার করেছি find $dir -type f -regextype posix-extended -regex ".*\.(jpg|png|<...>|cr2|raw|raf|orf)"যেখানে <...>অন্যান্য প্রত্যয়গুলির গুচ্ছ অর্থ।
জেফ

বিভিন্ন সংক্ষেপণ গ্রন্থাগার সম্পর্কে ভাল পয়েন্ট।
জেফ

1
বিএমপি নর্মালাইজড ইমেজগুলি convert image.jpg - | md5sum(ইমেজম্যাগিক) আপনাকে যথাযথ MD5 যোগান দিলে আপনি চেষ্টা করতে পারেন ।
অ্যাভেন্টুরিন

1
ফ্যাশ নামে একটি ধারণাগত হ্যাশিং অ্যালগরিদম রয়েছে যা উপলব্ধিযুক্ত দুটি চিত্রের তুলনা করার জন্য এটি দরকারী। স্ট্যাকওভারফ্লো এখানে একটি ট্যাগ রয়েছে stackoverflow.com/questions/tagged/phash এখন দুটি সরঞ্জামের তুলনা করে এমন একটি সরঞ্জাম থাকা দরকারী, তবে সমস্ত মিল খুঁজে পেতে ও (এন * এন) এর কাজ করতে পারে। সম্ভবত ওয়ার্কফ্লো রয়েছে যা আরও ভাল করে, তবে আমি একটি অফহ্যান্ড জানি না। তবে ফ্যাশ হ'ল এমন একটি রুটি যা আপনাকে একটিতে নিয়ে যেতে পারে। দৃশ্যত ImageMagick phash কিছুটা সমর্থন রয়েছে
infixed

উত্তর:


12

jheadজেপিইজি ফাইলগুলি থেকে নন-ইমেজ মেটাডেটা সরাতে পারে ম্যান পেজটি বলেছেন:

-dc

জেপিজি শিরোনাম থেকে মন্তব্য ক্ষেত্র মুছুন। দ্রষ্টব্য যে মন্তব্যটি এক্সিফ শিরোনামের অংশ নয়।

-de

পুরোপুরি Exif শিরোনাম মুছুন। অন্যান্য মেটাডেটা বিভাগ অক্ষত রেখে দেয়।

-di

উপস্থিত থাকলে আইপিটিসি বিভাগটি মুছুন। অন্যান্য মেটাডেটা বিভাগ অক্ষত রেখে দেয়।

-dx

উপস্থিত থাকলে এক্সএমপি বিভাগটি মুছুন। অন্যান্য মেটাডেটা বিভাগ অক্ষত রেখে দেয়।

-du

এক্সপি নয় এমন জেপিগের অংশগুলি মুছুন, মন্তব্য করবেন না এবং অন্যথায় চিত্রটিতে অবদান রাখবেন না - যেমন ফটোশপ ছবিটিতে থাকতে পারে এমন ডেটা।

-purejpg

চিত্রটি রেন্ডারিংয়ের জন্য প্রয়োজনীয় নয় এমন সমস্ত জেপিইজি বিভাগ মুছুন। চিত্রটিতে বিভিন্ন অ্যাপ্লিকেশন থাকতে পারে এমন কোনও মেটাডেটা স্ট্রিপ করে। -de -dcএবং -du বিকল্পগুলির সংমিশ্রণ ।


ঘূর্ণন ট্যাগটি 'চিত্রটি সরবরাহের জন্য প্রয়োজনীয়'
জেফ

1
পরিষ্কার হওয়া উচিত, তবে কেবল জেপিইজি ফাইলগুলির জন্য কাজ করে
সার্ভ-ইন

6

আমি বেশিরভাগ চিত্রের জন্য ইমেজম্যাগিকের সাথে যাব। এটি কারণ বিভিন্ন গ্রন্থাগার বাস্তবায়নগুলি বিভিন্ন সংকোচিত ফলাফল আনবে, চিত্রম্যাগিক একটি সংক্ষেপণ একীকরণ সম্পাদন করতে পারে।

সাধারণ প্রকারগুলি সহজ কারণ ওএসগুলিতে সেগুলি পড়ার এবং লেখার পাঠাগার রয়েছে। তাই:

find . -type f -name '*.jp*g' -o -type f -name '*.JP*G' \
       -exec mogrify -strip -taint -compress JPEG {} \;

find . -type f -name '*.png' -o -type f -name '*.PNG' \
       -exec mogrify -strip -taint -compress Lossless {} \;

find . -type f -name '*.gif' -o -type f -name '*.GIF' \
       -exec mogrify -strip -taint -compress LZW {} \;

এটি নিশ্চিত করবে যে আপনার ছবিগুলিও একইভাবে লেখা আছে। এবং তারপরে আপনি সঞ্চালন করতে পারেন:

find . -type f -regextype posix-extended \
       -regex ".*\.(jpe?g|JPE?G|png|PNG|gif|GIF)" \
       -exec md5sum {} \; > checksums
sort -k 1 checksums |
cut -d ' ' -f 1 |
uniq -d |
while read x; do
    grep $x checksums
done

কাঁচা ফর্ম্যাটগুলির জন্য আমি বিশ্বাস করি যে ফিলের কথামতোই একমাত্র উপায়, এবং তাই:

find . <blah blah> -exec exiftool -all= {} \;

এবং তারপরে চেকসামিংটি একই হবে। আপনার কেবল আঙ্গুলগুলি অতিক্রম করতে হবে যে একক বাস্তবায়ন (বা একটি অনমনীয় ফাইল ফর্ম্যাট) সহ আরও বহিরাগত চিত্র ফর্ম্যাটগুলি তৈরি করা যেতে পারে।

দাবি অস্বীকার : এটি তাদের মধ্যে চেকসামগুলি তুলনা করতে কাজ করবে। আপনি যদি চেকসমগুলি সঞ্চয় করেন এবং তারপরে -stripআপডেটের পরে পুনরায় চালনা করেন zlibবা libjpegআপনি সম্পূর্ণ আলাদা চেকসাম দিয়ে শেষ করতে পারেন। আপনাকে প্রতিবারের জন্য প্রতিটি চেকসাম তৈরি করতে হবে। চিত্রের গুণমান সম্পর্কে উদ্বেগের ভিত্তিতে এটি একবারে চালানো বুদ্ধিমানের কাজ ।


আমি ভুল হলে আমাকে সংশোধন করুন। মনে করুন দুটি ফাইল একই চিত্রের প্রতিনিধিত্ব করে তবে দুটি পৃথক গ্রন্থাগার দিয়ে সংকুচিত হয়েছিল। Jpg ক্ষতিকারক হওয়ায় তারা কি বিভিন্ন পিক্সেলগুলিতে 'সঙ্কোচিত' হবে না?
জেফ

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

@ জেফ সমস্যাটি খুব স্বাভাবিক কারণ ক্ষতির অর্থ হ'ল তথ্য হারিয়ে গেছে।
অ্যাভেন্টুরিন

অবশ্যই আপনি বিভিন্ন সংক্ষেপণের মান (উদাহরণস্বরূপ -quality) সংজ্ঞায়িত করলে সমস্ত বেট বন্ধ রয়েছে।
গ্রোচামাল

এই উত্তরটি নিয়ে কোনও সমস্যা হতে পারে। JFIFversion সহ জেএফআইএফ ট্যাগগুলি চিত্রম্যাগিক বিকল্প দ্বারা সন্নিবেশ করা হয় -strip। এটি দেখতে, এবং এর exiftool -a -G1 -s <filename>সাথে তৈরি ফাইলগুলিতে চালান । নিশ্চিত করতে, চালান । স্ক্রিপ্টের ভবিষ্যতের রানগুলি কোনওভাবে এটিকে বিবেচনায় নিতে হবে যদি জেএফআইএফ সংস্করণটি আলাদা ছিল। mogrify -stripexiftool -all=exiftool -a -G1 -s <original-filename> | grep JFIF
জেফ

6

সঙ্গে imagemagickপ্যাকেজ এবং না শুধুমাত্র JPEGs আউট জন্য আপনি কেবল যা করতে পারেন:

mogrify -strip *.jpg

ম্যানুয়াল থেকে :

-strip

কোনও প্রোফাইল, মন্তব্য বা এই পিএনজি খণ্ডগুলির চিত্রটি সরিয়ে ফেলুন: বিকেজিডি, সিএইচআরএম, এক্সিএফ, গামা, আইসিসিপি, আইটিএক্সটি, এসআরজিবি, টেক্সট, জেডিসিপি, জেডটিএক্সটি, তারিখ।

এখানে আরও অনেক তথ্য এবং সতর্কতা

দ্রষ্টব্য: এটি @ গ্রোকমালের সাথে সমান তবে আরও অনেক সোজা এবং সহজ।


সেই থ্রেড অনুসারে, exiftool -all= *.jpgজেপিজি ডেটা ফেলা আরও ভাল।
ওয়াল্ট ডাব্লু

0

স্রেফ মনে আসা একটি সম্ভাব্য সমাধান। এটি মেটাডেটা ইস্যুটিকে পাশ কাটিয়ে তোলে। এটি ধরে নেওয়া হয় যে ফাইলগুলি চিত্রের সাথেই শেষ হয়, সমস্ত মেটাডেটা ফাইলের শুরুতে।

আসুন বর্তমান ব্যাকআপ ড্রাইভটিকে সোনার ড্রাইভ হিসাবে উল্লেখ করুন।

সোনার ড্রাইভে চিত্রগুলির জন্য:

  1. যে কোনও এম্বেড থাকা থাম্বনেইল সরান।
  2. শেষের দিকে ফাইলটি শেষ করে টুকরো টুকরো করে বলুন, এম = 100 কে বাইট। এন্ড-অংশ হিসাবে প্রথম টেলিং (যা ফাইলের শেষে রয়েছে) দেখুন।
  3. প্রতিটি খণ্ডের এমডি 5sums গণনা করুন এবং সোনার তালিকার নামক একটি মাস্টার তালিকায় সংরক্ষণ করুন।

পুরানো ড্রাইভে চিত্রগুলির জন্য :

  1. যে কোনও এম্বেড থাকা থাম্বনেইল সরান।
  2. শেষ এম বাইটস একটি ফাইল বন্ধ করুন।
  3. এর এমডি 5সাম গণনা করুন।
  4. ক্লাস ইউ: যদি যোগফল সোনার তালিকায় না থাকে তবে সিদ্ধান্তটি সোনার ড্রাইভে অনন্য। এটি সোনার ড্রাইভে অনুলিপি করুন। অবশিষ্ট অংশগুলির এমডি 5sums গণনা করুন এবং তাদের সোনার তালিকায় যুক্ত করুন। পরবর্তী ফাইলটিতে যান।
  5. অন্যথায়, দ্বিতীয় থেকে শেষ এম বাইটগুলি বন্ধ করুন। তবে যদি বাকী বাইটগুলি কম হয় তবে বলুন, এন = 50 কে, তারপরে এম বাইটগুলি বন্ধ রাখবেন না। পরিবর্তে কিছুটা বড় আকারের বাকী অংশ হিসাবে প্রক্রিয়া করুন। এন হেডার অঞ্চলগুলি (থাম্বনেইলস বাদ দেওয়া) দ্বারা ব্যবহৃত বৃহত্তম স্থানের চেয়ে বড় হতে হবে।
  6. খণ্ডের এমডি 5sum গণনা করুন।
  7. সোনার তালিকার সাথে তুলনা করুন, ইত্যাদি।
  8. ক্লাস ডি: সমস্ত অংশগুলির জন্য যদি পরিমাণগুলি সোনার তালিকায় থাকে তবে সিদ্ধান্ত নিন যে এটি একটি সদৃশ।
  9. ক্লাস পি: সমস্ত খণ্ডের জন্য যদি যোগফল হয় তবে শেষগুলি সোনার তালিকায় থাকে, তবে সিদ্ধান্ত নিন যে এটি সম্ভবত একটি সদৃশ।

ক্লাস পিতে এমন চিত্র থাকবে যা সোনার ড্রাইভে রয়েছে তবে এর আলাদা এক্সফিটাটা রয়েছে, বা চিত্রের শীর্ষস্থানীয় বাইটগুলিতে দুর্নীতি / ডেটা-পচ রয়েছে।

সম্পন্ন হয়ে গেলে, স্বর্ণ-ড্রাইভে তাদের সাথীদের সাথে তাদের তুলনা করে, ইন্টারেক্টিভভাবে ক্লাস পি পরীক্ষা করুন।

ওপি তে সম্পাদনা # 3 দেখুন।

CLASS U এবং D এ নিয়োগ 100% নির্ভুল হওয়া উচিত।

CLASS পি এর আকার খণ্ড আকারের এম এর উপর নির্ভর করে, যেহেতু কোনও ফাইলের প্রথম এম + এন বাইটে অবশ্যই কিছু চিত্রের ডেটা থাকে (এবং সমস্ত মেটাডেটা)


আমি আপনার পোস্টটির কিছু ফর্ম্যাটিং করেছি (সুতরাং এটি ক্র্যামড অনুচ্ছেদের পরিবর্তে মার্কডাউন এনুমারেশন ব্যবহার করে)। তবুও আমি আপনাকে ক্লাস ইউ, ক্লাস ডি, ক্লাস পি ... বলতে কী বোঝাতে চাইছি তা নির্ণয় করতে বেশ
সাহসী বলে মনে করি

একটি পুরানো হার্ড ড্রাইভে প্রতিটি চিত্র ফাইলকে তিনটি শ্রেণির ইউ (নিক), ডি (উপস্থাপন) পি (রোবট ডুপ্লিকেট)
জেফ

0

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

  1. বর্তমান ব্যাকআপ ড্রাইভের পুরানো ড্রাইভগুলির মধ্যে কোন ফাইলগুলি অনন্য (এই বিকল্প অর্থে) সেগুলি ক্লাস ইউইউ (আনস্ট্রিপড-ইউনিক) বা CLASS ডি (আপিলিকেট) এর জন্য নির্ধারিত করতে অবিচ্ছিন্ন স্ট্রাইপড ফাইলগুলির md5sums ব্যবহার করুন। CLASS D 100% নির্ভুল হবে। CLASS uU ছোট হওয়া উচিত (উপরের অনুমানের দ্বারা) এবং সত্য নকলগুলির মিশ্রণ থাকতে পারে (ওপেন সেন্সে) এবং সত্যিকারের কৌশলগুলি।

  2. CLASS uU- তে ফাইলের ছোট, অর্থাৎ পরিচালনযোগ্য, সাথে কাজ করে, ওপিতে বর্ণিত উদ্দেশ্যে প্রয়োজনীয় ফাইলের তুলনার একটি পদ্ধতি ডিজাইন করতে md5sums এবং বিভিন্ন স্ট্রিপিং কৌশল ব্যবহার করুন।


0

এটি কিছুটা পুরানো, তবে হ্যাঁ, এক্সিফ্টোল খুব ভাল কাজ করে।

এর মেটাডেটা দেখান

exiftool photo.jpg

সমস্ত * .jpg ফাইলের জন্য মেতেডেটা দেখান

দ্রষ্টব্য: এক্সটেনশনটি কেস সংবেদনশীল

exiftool -ext jpg

উপরের মত একই, তবে সাব ডিরেক্টরি অন্তর্ভুক্ত।

exiftool -r -ext jpg .

সমস্ত মেটাডেটা সরান

exiftool -all= -overwrite_original photo.jpg

বর্তমান ডিরেক্টরিতে সমস্ত * .jpg ফাইলের সমস্ত মেটাডেটা সরান

exiftool -all= -overwrite_original -ext jpg 

উপরের মত একই, তবে সাব ডিরেক্টরি অন্তর্ভুক্ত।

exiftool -all= -r -overwrite_original -ext jpg .

বর্তমান ডিরেক্টরিতে * .jpg ফাইলের সমস্ত জিপিএস মেটাডেটা সরান

exiftool -gps:all= *.jpg
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.