macOS-এ HEIC ছবির একটি ফোল্ডারকে JPEG-এ রূপান্তর করতে এবং সেগুলোর EXIF মেটাডেটা বজায় রাখতে, JPEG তৈরি করতে sips ব্যবহার করুন, তারপর প্রতিটি মূল ছবি থেকে মেটাডেটা কপি করতে ExifTool ব্যবহার করুন। মূল HEIC ফাইলগুলো অপরিবর্তিত রাখুন এবং নতুন ফাইলগুলো একটি পৃথক ফোল্ডারে সেভ করুন। এই দ্বি-ধাপের প্রক্রিয়াটি মেটাডেটা স্থানান্তরকে সুস্পষ্ট করে তোলে; শুধুমাত্র একটি সফল ছবি রূপান্তর এটি প্রমাণ করে না যে সমস্ত EXIF ফিল্ড JPEG-এ সংরক্ষিত হয়েছে।
রূপান্তর করার আগে যা জানা প্রয়োজন
JPEG হলো একটি নতুন ইমেজ এনকোডিং, তাই ছবির ডেটা পুনরায় সংকুচিত (recompressed) হয়। ছবির মানে কোনো পরিবর্তন না এনে এটি রূপান্তর করা সম্ভব নয়। মেটাডেটা একটি পৃথক বিষয়: ক্যামেরার বিবরণ, তোলার তারিখ এবং GPS ট্যাগগুলো মূলে সংরক্ষিত থাকতে পারে, তবে প্রতিটি HEIC ফিল্ডের এমন সমতুল্য ফিল্ড থাকে না যা একটি JPEG ধারণ করতে পারে। তাই মেটাডেটা কপি করা মানেই প্রতিটি ফিল্ড অপরিবর্তিত থাকবে এমন কোনো নিশ্চয়তা নেই। কোনো নির্দিষ্ট ট্যাগ গুরুত্বপূর্ণ হলে ফলাফলটি যাচাই করে নিন।
macOS Preview একটি একক ছবি বা নির্বাচিত একাধিক ছবি JPEG হিসেবে রপ্তানি করতে পারে: একটি উইন্ডোতে ছবিগুলো খুলুন, সাইডবারে সেগুলো নির্বাচন করুন এবং File > Export বেছে নিন। Apple ফরম্যাট এবং মানের নিয়ন্ত্রণের বিষয়ে নথিভুক্ত করেছে, তবে ব্যাচ এক্সপোর্ট সমস্ত EXIF ফিল্ড সংরক্ষণ করে কিনা তা নথিভুক্ত করেনি। মেটাডেটা ধরে রাখা যদি বাধ্যতামূলক হয়, তবে নিচে দেওয়া সুনির্দিষ্ট কপি-এবং-যাচাই ওয়ার্কফ্লোটি ব্যবহার করুন। Apple-এর Preview রূপান্তর গাইড
Terminal দিয়ে রূপান্তর এবং মেটাডেটা কপি করুন
এই ওয়ার্কফ্লোটি প্রতিটি ছবি রূপান্তর করতে Apple-এর sips কমান্ড ব্যবহার করে, তারপর তার সংশ্লিষ্ট মূল ছবি থেকে মেটাডেটা কপি করতে ExifTool ব্যবহার করে। প্রথমে এর অফিসিয়াল ইনস্টলেশন নির্দেশাবলী ব্যবহার করে ExifTool ইনস্টল করুন। HEIC ফাইলগুলো ধারণ করে এমন একটি সোর্স ফোল্ডার এবং একটি খালি ডেস্টিনেশন ফোল্ডার তৈরি করুন। উদাহরণে, ফোল্ডারগুলো হলো ~/Pictures/HEIC-Originals এবং ~/Pictures/JPEG-Converted; আপনার ফোল্ডারের পাথ ভিন্ন হলে সেগুলো পরিবর্তন করে নিন।
Terminal খুলুন এবং এই সম্পূর্ণ Bash উদাহরণটি চালান। এটি ফোল্ডার এবং ফাইলের নামের স্পেস পরিচালনা করে, বড় বা ছোট হাতের অক্ষর নির্বিশেষে .heic এবং .heif এক্সটেনশন শনাক্ত করে এবং পৃথক ডেস্টিনেশন ফোল্ডারে JPEG গুলো লেখে।
src="$HOME/Pictures/HEIC-Originals"
out="$HOME/Pictures/JPEG-Converted"
mkdir -p "$out"
find "$src" -maxdepth 1 -type f \( -iname '*.heic' -o -iname '*.heif' \) -print0 |
while IFS= read -r -d '' file; do
name=$(basename "${file%.*}")
jpg="$out/$name.jpg"
if sips -s format jpeg "$file" --out "$jpg"; then
exiftool -TagsFromFile "$file" -all:all -overwrite_original "$jpg"
else
printf 'Conversion failed: %s\n' "$file" >&2
fi
done
sips কমান্ডটি JPEG তৈরি করে; ExifTool-এর -TagsFromFile এবং -all:all অপশনগুলো নির্দিষ্ট মূল ছবি থেকে মেটাডেটা কপি করে। -overwrite_original অপশনটি ExifTool-কে প্রতিটি JPEG-এর একটি ব্যাকআপ কপি তৈরি করা থেকে বিরত রাখে। ExifTool-এর ডকুমেন্টেশনে মেটাডেটা কপির বর্ণনা রয়েছে এবং উল্লেখ করা হয়েছে যে একটি ডেস্টিনেশন ফরম্যাট যে ট্যাগগুলো ধারণ করতে পারে তা সেই ফরম্যাটের ওপর নির্ভর করে। ExifTool অ্যাপ্লিকেশন ডকুমেন্টেশন
স্ক্রিপ্টটি শুধুমাত্র সোর্স ফোল্ডারের শীর্ষ স্তরে অনুসন্ধান করে। আপনার ছবিগুলো যদি নেস্টেড ফোল্ডারে থাকে, তবে প্রতিটি ফোল্ডারে এটি আলাদাভাবে চালান অথবা অনুসন্ধান ও ডেস্টিনেশন পাথগুলো এমনভাবে মানিয়ে নিন যাতে একই নামের ফাইলগুলো একে অপরকে ওভাররাইট না করে। নিশ্চিত করুন যে ডেস্টিনেশন ফোল্ডারটি খালি আছে বা এর ফাইলের নামগুলো বিদ্যমান ফাইলগুলোর সাথে সাংঘর্ষিক হবে না। আউটপুট যাচাই না করা পর্যন্ত মূল ফাইলগুলো রেখে দিন।
JPEG-গুলোতে আপনার প্রয়োজনীয় মেটাডেটা রয়েছে কিনা তা পরীক্ষা করুন
রূপান্তরিত একটি JPEG-কে তার সোর্স ফাইলের সাথে পাশাপাশি রেখে পর্যবেক্ষণ করতে ExifTool ব্যবহার করুন। নমুনার ফাইলের নামটি আপনার ব্যাচ থেকে নেওয়া একটি নাম দিয়ে প্রতিস্থাপন করুন:
exiftool -a -G1 -s "$HOME/Pictures/HEIC-Originals/IMG_0001.HEIC"
exiftool -a -G1 -s "$HOME/Pictures/JPEG-Converted/IMG_0001.jpg"
যে ফিল্ডগুলো আপনার কাছে গুরুত্বপূর্ণ সেগুলো তুলনা করুন, যেমন DateTimeOriginal, ক্যামেরার মেক এবং মডেল, এবং GPS স্থানাঙ্ক। কোনো ফিল্ড যদি HEIC-এ থাকে কিন্তু JPEG-এ না থাকে, তবে রূপান্তর বা মেটাডেটা কপি এটিকে ব্যবহারযোগ্য আকারে সংরক্ষণ করেনি; শুধু Finder-এ একটি তারিখ দেখাচ্ছে বা JPEG ছবিটি খুলছে দেখেই ধরে নেবেন না যে এটি সংরক্ষিত হয়েছে। ExifTool অনেক ছবির ফরম্যাট থেকে মেটাডেটা পড়তে পারে, তবে সমর্থিত ট্যাগ এবং লেখার উপযোগী ফিল্ডগুলো ফরম্যাট ভেদে পরিবর্তিত হয়। ExifTool-এর ফরম্যাট এবং ট্যাগ ডকুমেন্টেশন
সাধারণ সমস্যা এবং সীমাবদ্ধতা
sips যদি রিপোর্ট করে যে এটি একটি ফাইল পড়তে পারছে না, তবে পরীক্ষা করে দেখুন এটি একটি সমর্থিত ছবি কিনা এবং ফাইলের নামের এক্সটেনশনটি ফাইলের সাথে মিলছে কিনা। Terminal যদি exiftool: command not found দেখায়, তবে ExifTool ইনস্টল করা নেই বা এটি আপনার শেলের পাথে (shell's path) নেই। যদি দুটি মূল ফাইলের নামের মূল অংশ (stem) একই হয়, তবে স্ক্রিপ্টটি একই JPEG নামকে টার্গেট করবে; সেই ফাইলগুলোকে আলাদা ডেস্টিনেশন ফোল্ডারে রাখুন বা রূপান্তর করার আগে তাদের নাম পরিবর্তন করুন।
EXIF কপি মূল ছবির সাথে সম্পর্কিত প্রতিটি বৈশিষ্ট্য সংরক্ষণ করে না। একটি JPEG কেবল-HEIC ডেটা ধারণ করতে পারে না, এবং ট্যাগ কপি করলেই JPEG-এর পিক্সেলগুলো HEIC-এর ডিকোড করা ছবির অনুরূপ হয়ে যায় না। গুরুত্বপূর্ণ সংরক্ষণের জন্য, মূল HEIC ফাইলগুলো রেখে দিন এবং JPEG ফাইলগুলোকে সামঞ্জস্যপূর্ণ অনুলিপি (compatibility copies) হিসেবে বিবেচনা করুন। যখন লক্ষ্য শুধুমাত্র দ্রুত ফরম্যাট পরিবর্তন করা এবং মেটাডেটা গুরুত্বপূর্ণ নয়, তখন Preview-এর নথিভুক্ত ব্যাচ এক্সপোর্ট প্রক্রিয়াটি সহজতর; কিন্তু নির্দিষ্ট EXIF ফিল্ডগুলো গুরুত্বপূর্ণ হলে, সেগুলো রূপান্তর করুন, কপি করুন এবং পরীক্ষা করুন।
সূত্রসমূহ
Convert image file types using Preview on Mac — Apple Support
ExifTool Application Documentation — ExifTool
ExifTool Tag Names — ExifTool
Installing ExifTool — ExifTool