কমান্ড লাইন ব্যবহার করে কোনও চিত্রকে উল্লম্বভাবে বিভক্ত করবেন কীভাবে?


19

বলুন আমার কাছে একটি বিশাল 800x5000 চিত্র রয়েছে; কমান্ড লাইনটি ব্যবহার করে 800x1000 মাত্রা সহ আমি কীভাবে এটি 5 টি পৃথক চিত্রগুলিতে ভাগ করব?


2
দয়া করে আপনার প্রশ্নে সমাধান যুক্ত করবেন না below নীচের উত্তরটি স্বীকৃত হিসাবে চিহ্নিত করুন।
slm

উত্তর:


27

রূপান্তর-ক্রপ জ্যামিতি + রিপেজ ব্যবহার করে এটি সমাধান করুন:

convert -crop 100%x20% +repage image.png image.png

আপনি যদি এটি ব্যাচের ফাইলগুলিতে প্রয়োগ করতে চান তবে এটি ব্যবহার করে দেখুন:ls -1 *.png | sed 's,.*,& &,' | xargs -n 2 convert -crop 100%x20% +repage
জেপিটি

23

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

$ convert -crop 800x1000 image.png cropped_%d.png

নামে ফাইল একটি ক্রম মানুষ তৈরি করবে cropped_1.png, cropped_2.png, এবং তাই।

তথ্যসূত্র


ওপি বলেছিল যে এটি ব্যবহার করে এটি সমাধান করেছে convert -crop geometry +repage। উদাহরণস্বরূপ: convert -crop 100%x20% +repage image.png image.png
slm

1
+repage বিবেচ্য বিষয় Re: ইমেজ অফসেট সক্ষম ফরম্যাটের ইত্যাদি

এটি কীভাবে @ shley এর উত্তরের সাথে তুলনা করে?
সিএমসিডিগ্রাগনকাই

@ সিএমসিডিআর্যাগনকাই এটি মূলতঃ একই, তারা শতাংশ ব্যবহার করছে যাতে এটি কোনও আকারের চিত্রকে 800x5000 মামলার জন্য বিশেষভাবে রচনার পরিবর্তে 5 টি উল্লম্ব টুকরোতে বিভক্ত করে দেবে
২১

1

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

আমি পাইথন ইমেজ লাইব্রেরিটি ব্যবহার করে শেষ করেছি।

ওপি প্রশ্নের একটি দ্রুত এবং নোংরা উত্তর নিম্নলিখিত:

from PIL import Image

im = Image.open("YourImage.yourformat")

for h in range(0, im.height, 1000):
     nim = im.crop((0, h, im.width-1, min(im.height, h+1000)-1))
     nim.save("PartialImage." + str(h) + ".yourformat")

উপরের কোডটিতে চূড়ান্ত আকারের হার্ডকোড রয়েছে তবে এটি সহজেই সমস্ত ইনপুটকে প্যারামিটারাইজ করে নিজের নিজস্ব ফুটো স্ক্রিপ্টে রূপান্তরিত করতে পারে। কারও যদি কখনও এরকম প্রয়োজন হয়।

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