প্রশ্ন নটিলাস-অ্যাকশনগুলির সাথে তার মান পরিবর্তন করতে JPG চিত্রগুলি কীভাবে ব্যাচ করতে হয়?


সর্বপ্রথম: এটি পড়ার সময় এবং কিছু সাহায্য দেওয়ার সময় দেওয়ার জন্য আপনাকে ধন্যবাদ। কোন পরামর্শ প্রশংসা করা হয়।

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

চলুন বলি: ছবির বৈশিষ্ট্যের সাথে আমার এই ছবিটি 2.3 এমবি (2 261 588 বাইট) ফাইলের আকারের মতো আছে এবং:

enter image description here

এবং, জিআইপিপি 2.8 এ ফাইলটি খোলার পরে কেবল একটি অনুলিপি রপ্তানি করতে এবং JPG এক্সপোর্ট ডায়ালগ বাক্সটি ব্যবহার করুন যাতে পরবর্তী মানের স্ক্রিনে চিত্রটির গুণমান 30% কমিয়ে আনা যায়:

enter image description here

আমি ছবিটির অনুলিপিতে পরবর্তী ছবির বৈশিষ্ট্যগুলি পেয়েছি (251.8 কেবি (251 797 বাইট) ফাইল আকার):

enter image description here

এখন।

নটিলাসের ফাইলগুলির একটি গুচ্ছ নির্বাচন করে কনটেক্সট মেনুর মাধ্যমে একই আচরণ পুনঃপ্রণারণ করার জন্য আমি অনেকগুলি ছবি ব্যাচ প্রক্রিয়াতে নটিলাস অ্যাকশন ব্যবহার করছি, এই নির্বাচিত ফাইলগুলির উপর ডান ক্লিক করুন এবং সঠিক নটিলাস অ্যাকশন অ্যাকশন নির্বাচন করুন। ফলটি হল একটি ফাইল যা মূল মানের একই আকারে ধারণ করে এবং অবশ্যই কম মানের মানের এবং ফাইলের আকারটি একটু বেশি (275.3 কেবি (275 265 বাইট) ফাইলের আকার) তবে এটি আমার জন্য একটি বড় সমস্যা নয়।

সমস্যাটি

যখন আমি কয়েকটি ইমেজ ফাইল ব্যাচ করার চেষ্টা করি তখন ঘটছে, যার ফলে প্রথম ফাইলের নামটি বিভিন্ন ফাইলের নামের মধ্যে ক্লোন করা হয়েছে যার প্রতিটি একটি পৃথক চিত্র রয়েছে। আমি পরবর্তী কমান্ডের মধ্যে সেট বৈশিষ্ট্যের সাথে:

enter image description here

মূলত, প্রতিটি নটিলাস অ্যাকশন পরবর্তী পরামিতি ব্যবহার করছে:

COMMAND:  convert 

  • থেকে (imagemagick)

পরামিতি:  %F.jpg -quality 80%% %F-80q.jpg

  • যা ব্যাখ্যা করা হয়: convert path/to/file1.mid.jpg -quality=80% path/to/file1.mid-80q.jpg

ওয়ার্কিং ডিরেক্টরি:  %d

  • নিজেকে ব্যাখ্যা।

সুতরাং, ফলাফল এই স্ক্রিন শট দেখা যাবে:

enter image description here

এখানে আমরা প্রতিটি ফাইলকে একটি ভিন্ন ফাইলের মধ্যে প্রক্রিয়াকরণ করতে পারি তবে কেবল প্রথম ফাইল নামটি অনুলিপি করা ফাইলগুলিতে নতুন নাম বরাদ্দ করার জন্য ব্যবহৃত হয়। আমি একটি ফলাফল চান:

File1.jpg === File1-80q.jpg
File2.jpg === File2-80q.jpg
File3.jpg === File3-80q.jpg
File4.jpg === File4-80q.jpg

এবং তাই ...

আমি যেমন কাজ করতে ফ্যাচ ব্যবহার করেছি কিন্তু আমি যা চাই তা হল নির্বাচিত ফাইলগুলির উপর একটি ডান ক্লিক এবং একক পদক্ষেপে প্রক্রিয়া।

এটা কি এটি করার একটি ভাল উপায় আছে? অথবা ... আমি কীভাবে কিছুটা উন্নতি করতে পারি যা আমি ইতিমধ্যে করছি?

আপনার সমর্থনের জন্য আপনাকে অনেক ধন্যবাদ.

পুনশ্চ আমি দেখেছি ফোল্ডার গঠন সংরক্ষণ করার সময় আমি কীভাবে বা / ডিকে চিত্রগুলি রূপান্তর করতে পারি? এবং PNGs রপ্তানি SVGs ব্যাচ করার একটি উপায় আছে কি? কিন্তু আমি টার্মিনাল থেকে কিন্তু প্রসঙ্গ মেনু থেকে এটি চালানোর চেষ্টা করছি না। আমি যদি এই ব্যায়ামে কিছু বাদ দিই তবে আমাকে জানাতে দ্বিধা করবেন না! আমি এটা অনেক প্রশংসা করব। ধন্যবাদ!

সম্পাদন করা

ব্যবহার করার পরে মুরুর উত্তর আমি সমাধান আংশিকভাবে আমি কি আশা করি না।

আরো বিশেষভাবে এটি ফাইল নাম সমস্যা সমাধান করে। যাইহোক, আমি সঠিক চলমান ছোট ফাইলের মাপ পেতে প্রত্যাশিত convert file.jpg -quality 30% কমান্ড এবং এটি আপনি পরবর্তী ছবিতে দেখতে পারেন হিসাবে বড় ফাইল মাপ ড্রপ করা হয়:

enter image description here

অন্য কিছু আছে যদি আমি দেখা পরামিতি যোগ করা উচিত কেউ জানেন মুরুর উত্তর ? আমি এই বিষয়ে সাহায্য প্রদান আপনার প্রচেষ্টা অনেক প্রশংসা করি।

হালনাগাদ

আমি এই লিখছি শুধু লোকেদের জানার জন্য আমি কম্প্রেস সঙ্গে সমস্যা ছিল যেখানে দেখেছি। আমি যে ফাইলটি কম্প্রেস করার চেষ্টা করছিলাম তা ইতিমধ্যে যথেষ্ট সংকুচিত হয়েছে (যেমন উল্লেখ করা হয়েছে মুরুর উত্তর):

প্রক্রিয়া কিছু অর্জন ছাড়া মাত্র ওভারহেড যোগ করা হয়।


6
2018-04-19 16:46


উত্স




উত্তর:


আপনি ব্যবহার করতে পারবেন না %F যেহেতু একটি কমান্ড দুইবার, কারণ %F নির্বাচিত প্রতিটি ফাইলের নাম দ্বারা প্রতিস্থাপিত হয়। উদাহরণস্বরূপ, একটি কমান্ড sh পরামিতি সঙ্গে -c 'printf "%%s\n" "$@" > foo' %F %F নামে একটি ফাইল তৈরি করা হবে foo প্রতিটি ফাইলের নাম দিয়ে, দুইবার। সুতরাং, এটি convert কমান্ড যে আসলে চালানো হয়:

convert file1.jpg file2.jpg ... -quality 80% file1.jpg file2.jpg ... fileN.jpg-80q.jpg

এবং শেষ ফাইলটি আউটপুট ফাইল নাম হিসাবে নেওয়া হয়, শুধুমাত্র এটি ব্যাপার হবে।

আপনি কি করতে পারেন আপনার কমান্ড মোড়ানো bash -c এবং লুপ জন্য চালান:

bash -c 'for i; do convert "$i" -quality 80% "${i/%.jpg/-80q.jpg}"; done'

(যেখানে আমি ধরে নিচ্ছি যে সব ফাইল শেষ .jpg)

একটি কর্ম, আপনি হবে bash কমান্ড হিসাবে, এবং পরামিতি জন্য:

-c 'for i; do convert "$i" -quality 80%% "${i/%%.jpg/-80q.jpg}"; done' - %F

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


2
2018-04-19 17:23



আপনার উত্তরের জন্য আপনাকে অনেক ধন্যবাদ, মুরু! এটা আংশিকভাবে আমি কি আশা করি। আরো বিশেষভাবে এটি ফাইল নাম সমস্যা সমাধান করে। যাইহোক, আমি সঠিক চলমান ছোট ফাইলের মাপ পেতে প্রত্যাশিত convert file.jpg -quality 30%  কমান্ড এবং এটি বড় ফাইল মাপ ড্রপ করা হয়। আপনি কিছু আছে আমি পরামিতি যোগ করা উচিত কিছু আছে? আমি এই বিষয়ে সাহায্য প্রদান আপনার প্রচেষ্টা অনেক প্রশংসা করি। - Geppettvs D'Constanzo
@ জিপেটটভসড'স কনস্টেঞ্জো কত বড়? এটি আপনার ছবিগুলি ইতিমধ্যে খুব প্রশংসনীয় অত্যন্ত সংকুচিত হয় - কোন ক্ষেত্রে আরও সংকোচন কিছু অর্জন ছাড়া শুধু ওভারহেড যোগ করা হয়। - muru
যদি আমি মূল আকারের 30% হ'ল চিত্রগুলিকে "কমাতে" তবে কী ঘটতে পারে তা দেখার জন্য আমি একটি gif অ্যানিমেশন যুক্ত করেছি। ধন্যবাদ! - Geppettvs D'Constanzo
@ জিপেটটভসড'স কনস্টানজো 89 কেবি থেকে 90 কেবি পর্যন্ত আমার পরীক্ষাগুলি দেখে ঠিক বলে মনে হচ্ছে - আমি 30% দ্বারা তিনবার একটি ফাইল সংকুচিত করেছি, এবং চতুর্থ চেষ্টা করার পরে, এর আকার বাড়তে শুরু করেছে। যদিও এটি JPEG এর মতো ক্ষতিকারক ফর্ম্যাটের সাথে ঘটতে পারে না, তবে আমি মনে করি। - muru
আমি আপনার লেখা (সম্ভবত) আমি আপনার লেখা ছিল মুহূর্তে। তুমি ঠিক বলছো. ইমেজ যথেষ্ট সংকুচিত হয় এবং এই করছেন অত্যন্ত সংকুচিত ইমেজ জন্য সাহায্য করা হয় না। আমার ভুল. এটি ২6 মেগাবাইট (2 601 5২4 বাইট) ফাইল আকারের সাথে মূল থেকে 529.5 কেবি (529 457 বাইট) এর জন্য একটি সংকুচিত ফাইল সরবরাহ করে উচ্চ সংজ্ঞা চিত্রগুলির সাথে একটি যাদুমন্ত্রের মতো কাজ করে। আপনার সমর্থনের জন্য আপনাকে অনেক ধন্যবাদ, আমার বন্ধু! - Geppettvs D'Constanzo