অজগর [বন্ধ] জন্য এক্সিফ ম্যানিপুলেশন লাইব্রেরি


108

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


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

1
@ উওল এট আল: "সহায়তা কেন্দ্রে যদি এই প্রশ্নটি নিয়মের সাথে মানানসই হয় তবে দয়া করে প্রশ্নটি সম্পাদনা করুন বা একটি মন্তব্য দিন।" আমি পরবর্তীটি করেছি, তবে কিউ আরও মন্তব্য না করে বন্ধ করে দিয়েছে। কি দেয়? (কেবল বোঝার চেষ্টা করছি, এবং প্রশ্নগুলির সম্পাদনা / প্রশ্নগুলির সম্পাদনায় যদি কোনও পূর্ব সিদ্ধান্ত হয় তবে সময় নষ্ট করতে চান না)
dlm

এই প্রশ্ন জিজ্ঞাসা করার সময় আমি অন্যান্য বিকাশকারীদের মতামত চেয়েছিলাম! PackageOpinionOverflow?
ডেরেক লিটজ

1
মনে রাখবেন যে এখানে প্রায় সমস্ত অ-এক্সিভি 2 সমাধান অ্যাক্সেস করতে সক্ষম হবে না MakerNote। এই এক্সআইএফ ট্যাগে, ক্যামেরা নির্মাতারা তাদের নিজস্ব ট্যাগ যুক্ত করে যা মূল্যবান তথ্য রাখে। সুতরাং আপনি কেবল নীচের উত্তরগুলি থেকে বেশিরভাগ লাইব্রেরি সহ বেসিক ট্যাগগুলি পাবেন।
ব্যবহারকারী 136036

উত্তর:


65

আপনি এক্সেফাই-পি পরীক্ষা করতে চান :

পাইথন লাইব্রেরি টিফ এবং জেপিগ ফাইল থেকে এক্সআইএফ ডেটা বের করতে। ব্যবহার করা খুব সহজ - /। / EXIF.py image.jpg

বা পাইথন ইমেজিং লাইব্রেরি (পিআইএল) :

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

যথাযথভাবে পাইক্সিফের নামও রয়েছে: http://pyexif.sourceforge.net/

পাইক্সিফ পাইথন লাইব্রেরি এবং সরঞ্জামগুলির উদ্দেশ্য এটিতে জেপেইগ এবং টিফ ফাইলগুলি থেকে EXIF ​​তথ্য আহরণ করা। এই তথ্যটি সাধারণত ডিজিটাল ক্যামেরা, ডিজিটাল ফিল্ম স্ক্যানার ইত্যাদির মতো ডিজিটাল ইমেজিং ডিভাইসগুলি ব্যবহার করে নির্মিত চিত্রগুলিতে অন্তর্ভুক্ত থাকে

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

from PIL import Image
from PIL.ExifTags import TAGS

def get_exif(fn):
    ret = {}
    i = Image.open(fn)
    info = i._getexif()
    for tag, value in info.items():
        decoded = TAGS.get(tag, tag)
        ret[decoded] = value
    return ret

অস্বীকৃতি :
আমার আসলে কোন ধারণা নেই যা সবচেয়ে ভাল, আমি কেবল গুগলের সাথে একসাথে অংশ নিতে পেরেছি। :)


19
এই "সমাধান "গুলির মধ্যে কোনওই এক্সআইএফ ট্যাগগুলি আবার লিখতে পারে না, সুতরাং এগুলি প্রশ্নের সমাধান নয়।
ওডিনহো - ভেলমন্ট

22
যদিও প্রযুক্তিগতভাবে এক্সআইএফ ট্যাগগুলি লেখার অনুমতি দেয় না, আমি এটি খুব দরকারী বলে মনে করি। কোড লেখার জন্য +1।
সেরিন

3
পাইথন 3.x এর জন্য কোনও পিআইএল নেই
পাঁচ

চমৎকার ওভারভিউ। কেবল একটি নোট: এক্সিফ-পাই বর্তমানে পাইথন ৩.x এর সাথে সামঞ্জস্যপূর্ণ নয় (পাইথন ৩.৩.৩ দিয়ে পরীক্ষা করা হয়েছে, github.com/ianare/exif-py/issues/12 দেখুন )।
সেল

3
@ মোরেথানফাইভ একটি পিআইএল কাঁটাচামচ রয়েছে যা ভারীভাবে রক্ষণাবেক্ষণ করা হয় এবং এটির সাথে সংহত হয় pip! github.com/python-pillow/Pillow
ইবিজামান

59

আমি সম্প্রতি পাইকসিভ 2 ব্যবহার করছি এবং এটি আমার প্রয়োজনগুলি বেশ সুন্দরভাবে ফিট করে। সম্ভবত এটি আপনারও উপযুক্ত হতে পারে।


9
রেকর্ডের জন্য: পাইকসিভ 2 এগুলিগুলির মধ্যে সবচেয়ে ভাল রক্ষণাবেক্ষণ করা এবং সবচেয়ে সম্পূর্ণ (ফাইলটিতে এক্সআইএফ ট্যাগগুলি লেখার সাথে অন্তর্ভুক্ত) বলে মনে হচ্ছে।
rbp

1
Pyexiv2 সহজেই কোনও ভার্চুয়ালেনভের ভিতরে ইনস্টল করা যায়?
ম্যাট অস্টিন

2
রক্ষণাবেক্ষণটি ধীর হয়ে গেছে বলে মনে হচ্ছে, এবং ম্যাকের উপর ইনস্টলেশন একটি নরক। : /
ভেরটেক্সফাইভ

6
যারা যত্ন জন্য: দুর্ভাগ্যবশত, pyexiv2 শুধুমাত্র পাইথন 2. জন্য উপলব্ধ
টেকনিক্

1
<QUOTE src = " redmine.yorba.org/projects/gexiv2/wiki "> এটি পাইথন 2 বা 3 এর সাথে সমানভাবে কাজ করবে, যা জেক্সভি 2 কে পাইক্সিভি 2-র জন্য একটি দুর্দান্ত প্রতিস্থাপন করে, যা কেবল পাইথন 2 সমর্থন করে </ </ কোট>
jno

31

এক্সিভ 2 ভিত্তিক সমাধান

Exiv2 (exiv2: http://exiv2.org/ ) একটি পরিণত, ওপেন সোর্স সি ++ লাইব্রেরি যা অনেক চিত্রের ধরণের (জেপিইজি, পিএনজি, টিআইএফএফ এবং অনেকগুলি কাঁচা ফর্ম্যাট) মেটাডেটা পড়া এবং লেখাকে সমর্থন করে, স্ট্যান্ডার্ড বুঝতে পারে (এক্সএমপি, আইপিটিসি) এবং এক্সিফ) এবং অ-মানক মেটাডেটা ("মেকারনোটস") এবং একাধিক প্ল্যাটফর্মগুলিতে (উইন্ডোজ, লিনাক্স এবং কিছু কাজ করে ম্যাক) চালায়।

অজগর থেকে পাইথনের বাইন্ডিংগুলি হ'ল:

  • gexiv2 (একটি বহু-ভাষা বাঁধাই, তবে পাইথন ২.6 / ২.7 / ৩. এক্স সহ কাজ করে): https://wiki.gnome.org/gexiv2
  • পাইকসিভ 2 (আর সমর্থিত নয়, তবে পাইথন ২.6 / ২.7 নিয়ে কাজ করে): http://tilloy.net/dev/pyexiv2/

পাইকসিভ 2 এর একটি সুবিধা হ'ল পাইথন 2.7 এর জন্য একটি উইন্ডোজ বিল্ড উপলব্ধ। Gexiv2 এর জন্য একটি উইন্ডোজ বিল্ড রিকোয়েস্টটি এখানে রয়েছে: https://bugzilla.gnome.org/show_bug.cgi?id=712441

এক্সিভ 2 এবং বাইন্ডিংগুলি সমস্ত ওপেন সোর্স (জিপিএল)।


এক্সিভি 2
ডিএলএম

pyexiv2কাঁটাচামচ করা হয়েছে: py3exiv2.tuxfamily.org
আর্টেম ক্লিভতসভ

yetoy.net লিঙ্কটি মারা গেছে
jtlz2

5

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


এটিকে কোনও কম রক্তক্ষরণ প্রান্ত হিসাবে বিবেচনা করা যায় কিনা তা নিশ্চিত নয়।
ম্যাড পদার্থবিদ

5

পিল ব্যবহার করুন :)

import os,sys
from PIL import Image
from PIL.ExifTags import TAGS

if __name__ == '__main__':
    for (k,v) in Image.open(sys.argv[1])._getexif().iteritems():
        print '%s = %s' % (TAGS.get(k), v)
    os.system('pause')

1
খাঁটি পিআইএল / বালিশ EXIF ​​ট্যাগগুলি সংশোধন করার অনুমতি দেয় না। তবে সেখানে একটি ছোট লাইব্রেরি সাহায্য করছে: github.com/hMatoba/Pyxif
সাইমন স্টেইনবার্গার

4

Http://redmine.yorba.org/projects/gexiv2/wiki এর পৃষ্ঠাটি ( এখন https://wiki.gnome.org/Projects/gexiv2 হয়ে গেছে ) পড়বে :

এটি পাইথন 2 বা 3 এর সাথে সমানভাবে কাজ করবে, যা GExiv2 কে পাইক্সিভ 2 এর একটি দুর্দান্ত প্রতিস্থাপন করে, যা কেবল পাইথন 2 সমর্থন করে।

সুতরাং, পাইথন 2 এবং পাইথন 3 উভয়ই এখন জিএক্সিভি 2 দ্বারা সমর্থিত।

ভাল খবর.


2
লিঙ্কটি কাজ করে না. এটি wiki.gnome.org/ প্রকল্পগুলি
ব্যবহারকারী 881300

ভাল আপডেট! 2013 সাল থেকে 3 বছর
কেটে

3

আপনি http://www.emilas.com/jpeg/ এ ঘেওরোহে মিলাসের জেপিগ.পি লাইব্রেরিটিও দেখতে পাবেন , যা "জেপিইজি এক্সআইএফ , আইপিটিসি এবং সিওএম মেটাডেটা পার্স করার, পড়ার এবং লেখার জন্য একটি পাইথন গ্রন্থাগার"।

একটি অপূর্ণতা হ'ল তিনি ডাইনডএনএসের মাধ্যমে ডায়নামিক আইপিতে নিজের ডোমেনটি হোস্ট করছেন বলে মনে হয়, তাই এটি সর্বদা উপলব্ধ থাকে না।


আর অস্তিত্ব নেই।
সাইমন স্টেইনবার্গার

3

উপরের দিকে পাওলো কোড সহ আমি জেটেক্সিফের জন্য একটি বৈশিষ্ট্যযুক্ত ত্রুটি পেয়েছি .. আমি পাইথন ২.6..6 এবং পিআইএল ১.১..7 ব্যবহার করছি। _জেটেক্সিফ কি এখন অপ্রচলিত ??

এখানে একটি ছোট পরিমার্জন যা আমার পক্ষে কাজ করেছিল।

from PIL import Image
from PIL.ExifTags import TAGS

def get_exif(fn):
    ret = {}
    i = Image.open(fn)
#    info = i._getexif()
    info = i.tag.tags
    for tag, value in info.items():
        decoded = TAGS.get(tag, tag)
        ret[decoded] = value
    return ret

3

আমি আমার নিজের ছোট লাইব্রেরি লিখতে শুরু করেছি যা পিআইএল-এর কোডের উপর ভিত্তি করে। এখানে এটি পরীক্ষা করুন


1
এই যে ভাল দেখাচ্ছে। এর সাথে কোন ধারালো কিনারা?
ধনী

@ রিচ: আমার আর মনে নেই। এটা আমার জন্য কাজ করেছে।
অ্যালবার্ট

3

আমি http://www.sno.phy.queensu.ca/~phil/exiftool/ এর আশেপাশে আমার নিজস্ব র‍্যাপার ব্যবহার করছি - কারণটি হ'ল এটি অত্যন্ত সম্পূর্ণ, দেবটি অত্যন্ত সক্রিয়। এবং প্রায় সমস্ত চিত্র ফর্ম্যাটগুলিকে সমর্থন করতে সক্ষম না হওয়াই এটির জন্য প্রয়োজনীয় প্রকল্পের জন্য একটি পরম শোস্টোপার

অবশ্যই অসুবিধাটি হ'ল এটি অজগর নয়, সুতরাং আপনার মতো সাব-প্রসেস কলগুলি ব্যবহার করা দরকার।


এক্সিফ্টোল github.com/smarnach/pyexiftool এর জন্য পাইথনের মোড়ক রয়েছে । এটি সম্পূর্ণরূপে বাস্তবের জন্য এক্সিফ্টোলের জন্য একটি ভোট।
লং ভু

সে পাইথন লাইব চাইছে।
ডিয়েগো ভুইটাসেন


0

পাইথন ২.6 এ মডিউলের স্থানটি আলাদা। এটা ব্যবহার কর:

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