ভাল, এর সবচেয়ে সহজ উপায় হ'ল ইমেজম্যাগিক ব্যবহার করা । এটি আপনার লিনাক্স বিতরণের সংগ্রহস্থলগুলিতে হওয়া উচিত, ডেবিয়ান ভিত্তিক সিস্টেমগুলির জন্য, রান করুন:
sudo apt-get install imagemagick
ইমেজম্যাগিক স্যুটের একটি প্রোগ্রাম হ'ল identify
এটি ইনপুট ইমেজ ফাইলগুলির তালিকার বৈশিষ্ট্যগুলি মুদ্রণ করবে। এটির সাথে সম্মিলন sort
আপনাকে আকার অনুসারে বাছাই করা চিত্রগুলির একটি তালিকা দেবে (আপনি যে কোনও এক্সটেনশন (গুলি) এর জন্য পিএনজি পরিবর্তন করতে পারেন:
identify *png | sort -gk 3
আপনার যদি আকৃতির অনুপাতের দরকার হয় এবং কেবল আকার না হয় তবে এর মতো কিছু চেষ্টা করুন:
সহজ বিকল্প, ধরে নিন আপনার চিত্রের নামের কোনও স্থান নেই :
identify *png *jpg *gif | \
gawk '{split($3,sizes,"x"); print $1,sizes[1]/sizes[2]}' | \
sed 's/\[.\]//' | sort -gk 3
গাক কমান্ড তৃতীয় ক্ষেত্রটি (চিত্রের আকার যা LxH ফর্ম্যাট রয়েছে) অ্যারে "মাপগুলিতে" বিভক্ত করে এবং তারপরে 1 ম ক্ষেত্রটি (চিত্রের নাম) এবং চিত্রটির দৈর্ঘ্যটিকে তার উচ্চতা দ্বারা বিভক্ত করার ফলাফল প্রিন্ট করে। sed
কমান্ড মাত্র আউটপুট শোভাকর হয় এবং sort
কমান্ড ছবির আকার অনুপাত অনুযায়ী ফলাফলের বাছাই করে।
আরও জটিল, এই ফাইলটির নামের সাথে ফাঁকা স্থানগুলি মোকাবেলা করতে পারে:
find . \( -iname "*png" -o -iname "*jpg" -o -iname "*gif" \) -exec identify {} \; |\
perl -ne '/(.+?)\s+[A-Z]{3}\s+(\d+)x(\d+)/; print "$1 ", $2/$3, "\n"' | \
sort -gk 2
এখানে আমরা find
যে ফাইলগুলিতে আগ্রহী সেগুলি সনাক্ত করতে এবং identify
কমান্ডটি চালাতে ব্যবহার করছি এবং তারপরে কিছুটা পার্ল স্ক্রিপ্টের মাধ্যমে এর আউটপুটটি পাইপ করব। নিয়মিত প্রকাশটি তিনটি মূল অক্ষর ( [A-Z]{3}
) এর সন্ধান করে যা চিত্র ফর্ম্যাট হওয়া উচিত। একবার আমরা এটি খুঁজে পেয়েছি, ইমেজের নাম এবং মাত্রা সনাক্ত করা সহজ।
আমি এখানে গাওক ব্যবহার করছি না কারণ ইনপুট ফাইলের নামের ফাঁকে উপস্থিতি ক্ষেত্রের সংখ্যা গুলিয়ে ফেলবে। পরিশেষে, স্ক্রিপ্টটি চিত্রটির নাম এবং দৈর্ঘ্য / উচ্চতা বিভাগের ফলাফলটি মুদ্রণ করবে যা আমরা sort
সংখ্যায় করি।
যদি উপলভ্য অনুপাতের অনুপাতটি কেবল ব্রাউজ করাই যথেষ্ট না হয়, যদি আপনার পছন্দসই অনুপাতের অনুপাত সহ কমপক্ষে একটি চিত্র থাকে তবে কেবল সেই চিত্রগুলি বের করার জন্য গ্রেপ ব্যবহার করুন যার অনুপাতটি নিকটতম:
identify *png *jpg *gif | \
gawk '{split($3,sizes,"x"); print $1,sizes[1]/sizes[2]}' |\
sed 's/\[.\]//' | sort -gk 3 | grep -C 10 GOOD_IMAGE.jpg
identify -format "%[fx:w/h]:%M\n" *.jpg
। আমি কীভাবে সহজেই একটি স্বেচ্ছাসেবী মানের নিকটবর্তী অনুসারে বাছাই করতে চাই না।sort
এই ধরণের বাছাই সমর্থন বলে মনে হচ্ছে না।