আমি কীভাবে একই ব্যাচের প্রক্রিয়াতে একই ফাইলের নামের সাথে 2 টি চিত্র একত্রিত করব? এমন কোনও প্রোগ্রাম রয়েছে যা এটি করতে পারে?


0

কেউ কি এখানে আমাকে সাহায্য করতে পারে. আমি ডিভিডি কভারগুলির একটি সংগ্রহ করার চেষ্টা করছি। আমার কাছে বিভিন্ন কভারের জন্য একাধিক চিত্র এবং বিভিন্ন মেরুদণ্ডের অক্ষরের জন্য একাধিক চিত্র রয়েছে। প্রতিটি কভার .jpg এর সম্পর্কিত স্পাইন জেপিজির একই নাম has একটি ব্যাচের প্রক্রিয়াতে এই চিত্রগুলি কীভাবে একত্রিত করতে হবে তা আমার কেবল জানতে হবে কারণ সেগুলির 900 টি রয়েছে এবং একে একে তাদের সাথে যোগদান করতে দীর্ঘ সময় লাগবে। এমন কোনও প্রোগ্রাম রয়েছে যা সর্বনিম্ন কোলাহল দিয়ে এটি করতে পারে? আমি বেশিরভাগ ফটোশপ ব্যবহার করি তবে এটি করার কোনও উপায় আমি পাইনি।


2
আপনি ইমেজম্যাগিক দিয়ে এটি করতে পারেন। তাদের ফোরামে অনেক উদাহরণ আছে। imagemagick.org/discourse-server/viewforum.php?f=1
স্পাইডারপিগ

উত্তর:


0

আপনার সেরা বেটটি সম্ভবত চিত্রম্যাগিক (যা কমান্ড লাইন থেকে চিত্রগুলি ম্যানিপুলেট করার জন্য ক্রস-প্ল্যাটফর্ম প্রোগ্রাম) এবং কিছু কাস্টম স্ক্রিপ্টিং ব্যবহার করা হবে। এটি বলেছিল, আমি নিশ্চিত নই যে এটি আপনার পক্ষে "ন্যূনতম গোলযোগ" সমাধান হবে কিনা

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

ইমেজম্যাগিক ব্যবহার করা হচ্ছে

ইমেজম্যাগিক ইনস্টল হয়ে গেলে, চিত্রগুলির সংমিশ্রণের জন্য, আপনি convertইউটিলিটিটি ব্যবহার করতে পারেন ।

আমরা লেবেল যেমন ইমেজ একটি সেট ধরে নেওয়া যাক আছে image_front.jpg , image_back.jpg এবং image_spine.jpg এবং তারা করছি সব একই উচ্চতা, আমরা ব্যবহার করতে পারে convertসঙ্গে + + যোগ বিকল্প তাদের একসঙ্গে অনুভূমিকভাবে সেলাই করার

convert image_front.jpg image_spine.jpg image_back.jpg +append image_combined.jpg

এই ক্ষেত্রে, image_combined.jpg হ'ল আমাদের চূড়ান্ত কভার যা ক্রমে প্রদত্ত চিত্রগুলি সমন্বিত।


উইন্ডোজ কনভার্ট

দ্রষ্টব্য যে উইন্ডোজের একটি অন্তর্নির্মিত convertকমান্ড রয়েছে যা ইমেজম্যাগিকের সাথে কিছুই করার নেই। আপনি যদি উইন্ডোজ ব্যবহার করেন এবং সতর্ক না হন তবে এটি কিছু বিভ্রান্তি বা অন্যান্য ছোটখাটো সমস্যার কারণ হতে পারে।

তথাপি, আপনি করে ImageMagick ব্যবহার করতে চান, যদি convertউপরের হিসাবে প্রদর্শিত Windows এ ইউটিলিটি, আপনি আপনার করে ImageMagick ইনস্টলেশন ফোল্ডারে (রেজিস্টার করতে হবে প্রাক্তনC:\path\to\imagemagickআপনার উইন্ডোজ মধ্যে) Pathএনভায়রনমেন্ট ভেরিয়েবল।

অন্যথায়, convertপ্রতিবার আপনি যখন এটি কল করবেন তখন আপনার সম্পূর্ণ পথ নির্দিষ্ট করতে হবে ( প্রাক্তন C:\path\to\imagemagick\convert.exe )।


স্বয়ংক্রিয়তা

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

ধারাবাহিকতার জন্য, আমি convertআগের থেকে উদাহরণের মতো একটি নামকরণ স্কিম ব্যবহার করব । আমি একই সাথে একই প্রাথমিক ডিরেক্টরিতে উপস্থিত সমস্ত ফাইলকে রূপান্তর করতেও ধরে নিচ্ছি।

একটি উদাহরণ ব্যাচ সমাধান

এই উদাহরণস্বরূপ, প্রথম পদক্ষেপটি "বেস" ফাইলের নামের একটি তালিকা তৈরি করা (যেমন "এক্সটেনশানগুলি" _front.jpg, _spine.jpgএবং _back.jpgব্যাচের স্ক্রিপ্টে যোগ করা হবে)।

এই তালিকাটি আপনার পছন্দ মতো যেকোনো কিছু বলা যেতে পারে তবে আমি এগুলিকে ফাইলস টেক্সট হিসাবে উল্লেখ করব । কভার চিত্র হয় ধরে নেওয়া যাক যেমন image_01_front.jpg, image_01_spine.jpg, image_01_back.jpg, ইত্যাদি এবং সেখানে ইমেজ চার গ্রুপ আছে, files.txt নিম্নলিখিত বিষয়বস্তু প্রয়োগ করা হবে:

image_01
image_02
image_03
image_04 

মনে রাখবেন যে এই তালিকার কোনও সদৃশ হওয়া উচিত না। একইভাবে, কোনও ফাঁকা লাইন থাকা উচিত। এই প্রয়োজনীয়তাগুলি পূরণ হয়েছে বলে ধরে নেওয়া, এই তালিকাটি নীচের উদাহরণস্বরূপ ব্যাচ ফাইলের ইনপুট হিসাবে ব্যবহার করা যেতে পারে:

@echo off

@rem Create some folders to hold our images after processing.
if not exist processed mkdir processed
if not exist combined mkdir combined

@rem We use %%~A below to access the strings returned from our list.
@rem %cd% is a special variable representing the current directory.

@rem For each item in our list...
for /f "usebackq delims=" %%A in ("%cd%\files.txt") do (

  @rem Use ImageMagick to combine our images.
  @rem We are concatenating strings here (%%~A and e.g. "_front.jpg").
  @rem This is the same as writing ex. "image_01_front.jpg".

  convert %%~A_front.jpg %%~A_spine.jpg %%~A_back.jpg +append %%~A_combined.jpg

  @rem Sort our images to the appropriate local folders after conversion.
  move %%~A_front.jpg .\processed
  move %%~A_spine.jpg .\processed
  move %%~A_back.jpg .\processed
  move %%~A_combined.jpg .\combined

)

echo Script completed.
pause

এই স্ক্রিপ্টটি যেমন মার্জ.বাট হিসাবে সংরক্ষণ করা যায় । এই ব্যাচ ফাইলটি ফাইল. txt ( একই ফাইলের তালিকাভুক্ত চিত্রের পাশাপাশি) একই ডিরেক্টরিতে বাস করছে বলে ধরে নিয়ে, মার্জ.বাটকে ডাবল-ক্লিক করা সম্ভব হবে এবং তালিকাতে সমস্ত চিত্র প্রসেস করা যায় (ধরে নিবেন যে কিছুই হয় না) টেরা)।

স্ক্রিপ্ট নোট

  • প্রদত্ত লিপিটি স্পষ্টতই একটি উদাহরণ। এটি আপনার নির্দিষ্ট পরিস্থিতি / আকাঙ্ক্ষার জন্য কিছু টুইট করার প্রয়োজন হতে পারে।

  • বর্তমানে, উদাহরণস্বরূপ ব্যাচ ফাইলটি সাব ডিরেক্টরিগুলি পুনরাবৃত্তি করে না।

  • ("%cd%\files.txt")যেমন প্রতিস্থাপন করা যেতে পারে ("C:\path\to\files.txt")

  • %%~Aএটি অত্যন্ত লক্ষণীয়, কারণ এটি ফাইল . txt তালিকাভুক্ত প্রতিটি স্ট্রিংয়ের ( প্রতিনিয়ত ) প্রতিনিধিত্ব করে ।

  • convert/+appendঅটোমেশনের জন্য সঠিক ফাইলের নামগুলি কম গুরুত্বপূর্ণ ( কমান্ডটি প্রায় কোনও যেকোন স্বেচ্ছাসেবী নাম নিতে পারে), তাদের একটি সামঞ্জস্যপূর্ণ কাঠামো থাকা উচিত। যদি আপনাকে উইন্ডোজটিতে একবারে প্রচুর ফাইলের নাম পরিবর্তন করতে হয় তবে আপনি বাল্ক পুনর্নামকরণের ইউটিলিটিতে আগ্রহী হতে পারেন ।

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


ফাইল তালিকা তৈরি করা হচ্ছে

রিয়েল-ওয়ার্ল্ড ফাইল তালিকার চারটি বেসিক আইটেম তৈরি করা কিছুটা বেশি কঠিন হতে পারে। যদিও এটি আপনার উপরের উদাহরণটির জন্য ঠিক dir /b > files.txtযেমনটি প্রয়োজন তা উত্পাদন করে না, আপনি উইন্ডোতে থাকলে আপনার চিত্র ফাইলগুলির একই ডিরেক্টরিতে খোলা একটি কমান্ড প্রম্পটে কেবল ফাইলের নাম এবং এক্সটেনশনের একটি তালিকা তৈরি করতে পারেন । এটি আপনাকে বেশিরভাগ ক্ষেত্রে কমপক্ষে 50% পথ পাবে।

একইভাবে, নোটপ্যাড ++ (উইন্ডোজ) এর মতো তৃতীয় পক্ষের পাঠ্য সম্পাদকগুলির দরকারী বৈশিষ্ট্য থাকতে পারে। নোটপ্যাড ++ এর ক্ষেত্রে এটি নিয়মিত প্রকাশের পাশাপাশি সাধারণ পাঠ্য প্রতিস্থাপনকে সমর্থন করে। সুতরাং যেমন:

image_01_back.jpg
image_01_front.jpg
image_01_spine.jpg
image_02_back.jpg
image_02_front.jpg
image_02_spine.jpg
image_03_back.jpg
image_03_front.jpg
image_03_spine.jpg
image_04_back.jpg
image_04_front.jpg
image_04_spine.jpg
merge.bat
randomfile.extra
files.txt

মধ্যে:

image_01
image_02
image_03
image_04

নোটপ্যাড ++ এর জন্য আপনি:

  1. ম্যানুয়ালি অপসারণ merge.bat , randomfile.extra এবং files.txt

  2. ফাঁকা প্রতিস্থাপনের মাধ্যমে এক্সটেনশানগুলি (.eg ) অপসারণ করতে অনুসন্ধানপ্রতিস্থাপন ... ( Ctrl+ H) ব্যবহার করুন .jpg, পাশাপাশি, _frontব্যাচ স্ক্রিপ্টের জন্য বেস নামের একটি সেট দেওয়ার জন্য বলুন:

     image_01_back
    →image_01
     image_01_spine
     image_02_back
    →image_02
     image_02_spine
     image_03_back
    →image_03
     image_03_spine
     image_04_back
    →image_04
     image_04_spine
    
  3. তারপরে আপনি _ স্পাইনযুক্তSearch Mode: Regular expression লাইনগুলি সরাতে স্যুইচ করতে পারেন :

নোটপ্যাড ++ নিয়মিত এক্সপ্রেশন প্রতিস্থাপন

উপরের স্ক্রিনশটে, শেষে .+spine$সমস্ত লাইন নির্বাচন _spineকরে। আপনি নিষ্কাশন পারে সব লাইন ধারণকারী _backসঙ্গে .+back$পাশাপাশি, নিম্নলিখিত ভালো কিছু রেখে:

    image_01

    image_02

    image_03

    image_04
  1. এই ফাঁকা রেখা তারপর কাটানো যেতে পারে সম্পাদনালাইন অপারেশনসখালি লাইনস সরান , আমাদের চূড়ান্ত তালিকায় রেখে files.txt :

    image_01
    image_02
    image_03
    image_04
    

এটি চারটি লাইনের জন্য অকার্যকর বলে মনে হতে পারে তবে যেহেতু আপনি বলছেন আপনার 900 টিরও বেশি আইটেম রয়েছে তাই এই পদক্ষেপগুলির মধ্যে কিছু প্রকরণ বিবেচনা করার মতো হতে পারে।

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