EXIF তথ্যগুলিতে তারিখ অনুসারে চিত্রগুলি বাছাই করুন এবং নাম পরিবর্তন করুন


9

আমার ফটোগুলি ফোল্ডারে আমার গোলযোগ আছে; আমি তাদেরকে এক্সআইএফ তথ্যগুলিতে তারিখ অনুসারে বাছাই করতে এবং তারিখ অনুসারে নাম পরিবর্তন করতে চাই (যেমন 001.jpg, 002.jpg এবং অন্যান্য))

আমি কীভাবে এটি লিনাক্সে করতে পারি? আমি কিছু প্রাথমিক বাল্ক প্রসেসিংয়ের জন্য ইমেজম্যাগিক ব্যবহার করেছি (রূপান্তরকরণ এবং আকার পরিবর্তন, ইত্যাদি), এই কাজের জন্য কি এটি ব্যবহার করা সম্ভব?

উত্তর:


21

লিনাক্সে আপনি কমান্ড এক্সিফটোল ব্যবহার করতে পারেন । কোনও কারণে অনলাইন ম্যানুয়ালটিতে "পুনর্নবীকরণের উদাহরণ" বিভাগটি নেই যা আমাকে প্রয়োজনীয় ইঙ্গিত দিয়েছে।

জেপিজি কেবল ফাইলের জন্য নিম্নলিখিত কমান্ডের আবেদনটি করা উচিত:

exiftool -r '-FileName<CreateDate' -d '%Y-%m-%d/%H_%M_%S%%-c.%%le' <yourFolder>

ব্যাখ্যা:

  • -r পুনরাবৃত্তি জন্য হয়
  • '-FileName<CreateDate'এক্সিফ্টোলকে ফাইলটিকে তার এক্সআইএফ ট্যাগের নাম অনুসারে পুনরায় নামকরণ করতে বলে CreateDate(আপনি অন্যের মতো চেষ্টা করতে পারেন ModifyDate)
  • -d '%Y-%m-%d/%H_%M_%S%%-c.%%le'তারিখ উত্স " CreateDate" থেকে ফাইলের নাম স্ট্রিং কীভাবে তৈরি করা যায় তা বলছে ("" %-c"ফাইলের সংঘর্ষের ক্ষেত্রে একটি কাউন্টার যুক্ত হবে," %le"" "লোয়ার কেসড ফাইল এক্সটেনশান" হিসাবে দাঁড়িয়েছে))
    • দ্রষ্টব্য : আমি -FileName<...ফাইলগুলির নাম পরিবর্তন করে এক ধাপের মধ্যে এটি অন্য ফোল্ডারে নিয়ে যাওয়ার জন্য এখানে " " ব্যবহার করেছি । ম্যানুয়ালটি নির্দেশ করে যে আপনাকে -Directory<...ফোল্ডার ক্রিয়াকলাপের জন্য সিনট্যাক্স ব্যবহার করতে হবে । যদিও এটি আমার পক্ষে এইভাবে কাজ করেছিল।

এই শক্তিশালী সরঞ্জামটির ম্যানুয়ালটি পড়তে আপনার কিছুটা সময় ব্যয় করা উচিত। সম্ভবত একটি আরও ছোট উপায় আছে: ডি


1
ডকুমেন্টেশনে পুনরায় নামকরণের উদাহরণগুলি: sno.phy.queensu.ca/~phil/exiftool/…
rwoo


2

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


1

আমি একটি ছোট এবং খুব অপ্টিমাইজড পাইথন স্ক্রিপ্টটি করেছি যা আমি মনে করি আপনি যা করতে চান তা করে:

1 import pyexiv2, sys, os, time, datetime, random
2 dirname = sys.argv[1]
3 flist=os.listdir(dirname)
4 dic = dict()
5 for fname in flist:
6     metadata = pyexiv2.ImageMetadata(sys.argv[1]+'/'+fname)
7     metadata.read()
8     tag = metadata['Exif.Image.DateTime']
9     timestamp = int(time.mktime(tag.value.timetuple()))
10     #print fname, ' ', tag.value, ' ', timestamp
11     try:
12         dic[timestamp] = fname
13     except:
14         print fname, ' not processed.'
15 
16 keys = dic.keys()
17 keys.sort()
18 i = 0 
19 for k in keys:
20     os.rename(sys.argv[1]+'/'+dic[k], sys.argv[1]+'/'+str(i)+'.jpg')
21     i+=1

আপনাকে এই লাইব্রেরিটি ইনস্টল করতে হবে yetoy.net/dev/pyexiv2
সেলিব্রেডার

1

এটি ডেবিয়ান লেনিতে কাজ করার জন্য এটি ব্যবহার করে দেখুন:

import pyexiv2, sys, os, time, datetime, random
dirname = sys.argv[1]
flist=os.listdir(dirname)
dic = dict()
for fname in flist:
    image = pyexiv2.Image(sys.argv[1]+'/'+fname) 
    #metadata = pyexiv2.ImageMetadata(sys.argv[1]+'/'+fname)
    #metadata.read()
    image.readMetadata() 
    tag = image['Exif.Image.DateTime']
    timestamp = int(time.mktime(tag.timetuple()))
    #print fname, ' ', tag.value, ' ', timestamp
    try:
    dic[timestamp] = fname
    except:
    print fname, ' not processed.'

keys = dic.keys()
keys.sort()
i = 0 
for k in keys:
    os.rename(sys.argv[1]+'/'+dic[k], sys.argv[1]+'/'+str(i)+'.jpg')
    i+=1

1

পিএইচপি তে আমি এরকম কিছু করেছি:

<?php

$path = "./path/to/images";
$files = scandir($path);

foreach ( $files as $file )
{
    if ( $file[0] === "." )
    {
        continue;
    }
    $ext = end(explode(".", $file));

    $suffix = "image";

    $exif = exif_read_data($path."/".$file, 'EXIF');
    $datetime = str_replace("/","-", $exif['DateTimeDigitized']);

    rename($path."/".$file, $path."/".$datetime.$suffix.".".$ext);
}

0

আমরা এটিতে থাকাকালীন এখানে একটি "গঞ্জো প্রোগ্রামিং" স্টাইলটি bashব্যবহার করে exiftool, এটি ব্যবহার করে একে একাধিক ডিরেক্টরি এবং / অথবা স্বতন্ত্র ফাইলগুলিতে একসাথে ছেড়ে দেওয়া যেতে পারে। এটি এমন ফাইলগুলিকে এড়িয়ে চলে যা অপরিবর্তিত মাইম প্রকারের রয়েছে।

এটি এক্সআইএফ DateTimeOriginalট্যাগ ব্যবহার করে ফটোগুলির নাম পরিবর্তন করে (সুতরাং ফলাফলটি কিন্তু 001.jpgনয় 2015-12-22_14:43:15.jpg

যদি একটি নামকরণ বিরোধ দেখা দেয়, সূচক সংখ্যার প্রযুক্ত হয়: 2015-12-22_14:50:57.1.jpg

দরকারী হতে পারে: রিলেবল_ফোটো_সামান্য_সামান্য টাইমরিজিনাল.শ

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