কেবল কমান্ড লাইন সরঞ্জাম ব্যবহার করে চিত্রগুলি ক্রপ করা হচ্ছে


33

আমি আমার সি এল এলিতে কেবল উবুন্টুতে কমান্ড লাইন সরঞ্জামটি ব্যবহার করে কেবল চার দিকের জন্য ক্রপ করতে পিক্সেল নির্দেশ করে crop (যেমনটি লিব্রোফাইসে পাওয়া গেছে)

উদাহরণ স্বরূপ:

crop image.jpg -top 5px -bottom 7px -right 14px -left 3px

এমন কোনও সরঞ্জাম আছে (জিইউআই নয়)?



@ থমাস ওয়ালার এটি কমান্ড লাইন চাইছে এবং জিইউআই সরঞ্জাম নয় প্লাস আপনার সরবরাহিত লিঙ্কযুক্ত প্রশ্নটি জিইউআই সম্পর্কে তাই দয়া করে কেবল আবার প্রশ্নটি পড়ুন
মেথাক্স

2
লিঙ্কযুক্ত প্রশ্নটি সরঞ্জামের ধরণটি নির্দিষ্ট করে না। দ্বিতীয় উত্তরটি একটি কমান্ড লাইন সরঞ্জাম সম্পর্কে: ইমেজম্যাগিক। আমি জানি এসও নিয়ে আলোচনা রয়েছে যে উত্তরটি একই রকম হলে কোনও প্রশ্নের সদৃশ কিনা। লোকেরা একমত বা দ্বিমত পোষণ করতে পারে।
টমাস ওয়েলার

1
@ থমাস ওয়ালার কিন্তু উত্তরটি সুবিধাজনক নয়, তবুও এটি দেখায় না যে তিনি কীভাবে এবং কেন বিকল্পগুলি ব্যবহার করেছিলেন .. সত্যি বলতে কী আপনি ব্যবহৃত বিকল্পগুলি বুঝতে পেরেছিলেন ?! আমি নিজেই এই তথ্যটি পেতে পারি না, এটি এখানে প্রথম উত্তর, এটি কোনও ব্যাখ্যা ছাড়াই উত্তরটি নিম্নমানের করে তোলে
মেথাক্স

@ ডাউনভোটার্স আমার জানা উচিত আপনার সাথে কী হয়েছে? !!
মেথাক্স

উত্তর:


36

convertচিত্রের ম্যাজিক প্যাকটি ব্যবহার করে এখানে এক আলোচনা করা হয়েছে ।

sudo apt-get install imagemagick

একটি ছবির জন্য image.jpg

$ identify image.jpg 

image.jpg JPEG 720x482 720x482+0+0 8-bit DirectClass 100KB 0.000u 0:00.009

উপরে প্রদর্শিত হিসাবে, ইনপুট চিত্রটি 720x482px।

এখন ক্রপিং করতে আপনাকে দুটি কারণ নির্ধারণ করতে হবে:

  1. শস্য শুরুর পয়েন্ট (২ টি দিক সহ)
  2. ক্রপযুক্ত আয়তক্ষেত্রের আকার (এখানে আপনি অন্যান্য দিকগুলি অন্তর্ভুক্ত করতে পারেন)

এখন image.jpgউপরের চিত্রটিতে ফিরে , আমি ক্রপ করতে চাই:

  • শীর্ষ 5px
  • নীচে 7px
  • ডান 14px
  • বাম 3px

তারপরে আপনি এটি ( widthx height+ left+ top/ wx h+ l+ tফর্ম্যাট) দিয়ে করতে পারেন:

convert image.jpg -crop 703x470+3+5 output.jpg

এখন

$ identify output.jpg 

output.jpg JPEG 703x470 703x470+0+0 8-bit DirectClass 102KB 0.000u 0:00.000

2
বলা হয়ে থাকে যে ইমেজম্যাগিক 7 "রূপান্তর" এর জায়গায় "ম্যাজিক" কমান্ড ব্যবহার করে। যে কেউ পাতিত করা command not found: convertইস্যু, চেষ্টাmagick
iplus26

1
এটি একটি বড় সহায়তা ছিল, তবে "গণনা" এর চারপাশে মাথা জড়ানোর জন্য আমাকে কিছুটা সময় নিয়েছিল। আমার উপর থেকে নীচে থেকে নীচে কাটতে আমার 1280x1024 চিত্রের একটি সেট ছিল, সুতরাং চূড়ান্ত চিত্রটির মূল থেকে "মাঝারি" 718 পিক্সেল থাকবে (একটি কালো ব্যান্ড টপ এবং নীচে খুলে নেওয়া হবে)। আমার এটি ব্যবহারের দরকার ছিল: convert in.png -crop 1280x718+0+152 out.pngযেখানে আমি এই লাইনটি বোঝাতে চাইছি: convert in.png -crop [final-right-x]x[final-right-y]+[crop-left]+[crop-top] out.pngযদিও এটি @ মেথক্সের সংখ্যার সাথে মেলে না বলে মনে হচ্ছে ... FWIW!
ডেভিড

3
এর 703x470পরিবর্তে হওয়া উচিত নয় 713x470? বাম + ডান ক্রপিং হিসাবে = 3+14 = 17px, যখন থেকে বিয়োগ 720হয় 703এবং হয় না 713
মুনক্র্যাটার

এই সাহায্য! আমি 713 পিক্সের পরিবর্তে 703px উভয়ই FIX এ সম্পাদনা করার পরামর্শ দিয়েছিলাম (যা আমি সম্মত), এবং বামে এবং শীর্ষে ফর্ম্যাটেWxH+l+t
এল-তেডি

12

যদি আপনি সাদা অঞ্চলগুলি দূরে ছাঁটাই করতে চান তবে এর জন্য imagemagickএকটি বিশেষ আদেশ আছে:

convert -trim input.jpg output.jpg

9

একটি "ব্যবহারকারী বান্ধব" জলবায়ু বিকল্প তৈরি করতে, নীচের স্ক্রিপ্টটি ব্যবহার করা যেতে পারে। কেবল কমান্ডটি চালান:

<script> <image> <crop_left> <crop_right> <crop_top> <crop_bottom>

এটি একই ডিরেক্টরিতে image.jpegনামযুক্ত একটি ক্রপযুক্ত চিত্র তৈরি করে image[cropped].jpeg

এই পান্ডুলিপি

#!/usr/bin/env python3
import subprocess
import sys

# image, crop- dimensions
img = sys.argv[1]; left = sys.argv[2]; right = sys.argv[3]; top = sys.argv[4]; bottom = sys.argv[5]
# arrange the output file's name and path
img_base = img[:img.rfind(".")]; extension = img[img.rfind("."):]; path = img[:img.rfind("/")]
img_out = img_base+"[cropped]"+extension
# get the current img' size
data = subprocess.check_output(["identify", img]).decode("utf-8").strip().replace(img, "")
size = [int(n) for n in data.replace(img, "").split()[1].split("x")]
# calculate the command to resize
w = str(size[0]-int(left)-int(right)); h = str(size[1]-int(top)-int(bottom)); x = left; y = top
# execute the command
cmd = ["convert", img, "-crop", w+"x"+h+"+"+x+"+"+y, "+repage", img_out]
subprocess.Popen(cmd)

কিভাবে ব্যবহার করে

  1. স্ক্রিপ্ট ব্যবহার করে imagemagick

    sudo apt-get install imagemagick
    
  2. উপরের স্ক্রিপ্টটি crop_image(কোনও এক্সটেনশন নয়) হিসাবে সংরক্ষণ করুন ~/bin

  3. প্রয়োজনে ডিরেক্টরি তৈরি করুন। source ~/.profileসেক্ষেত্রে ডিরেক্টরিটি প্রদর্শন করতেও রান করুন $PATH
  4. স্ক্রিপ্টটি কার্যকর করা যায় Make

উল্লিখিত হিসাবে এখন কেবল স্ক্রিপ্টটি এর নাম দিয়ে চালান:

crop_image /path/to/image.jpg 20 30 40 50

স্পেসগুলি কোনও সমস্যা নয়, যতক্ষণ না সেই ক্ষেত্রে, আপনি উদ্ধৃতি ব্যবহার করেন:

crop_image '/path/with spaces in the name/to/image.jpg' 20 30 40 50

@ মায়থাক্স আপনার সাম্প্রতিক সম্পাদনার অর্থ কী তা নিশ্চিত নন, আপনি বোঝাতে চেয়েছেন যে উপরের সমাধানটি আপনার সিস্টেমে কাজ করে না? এটা শুধুমাত্র ক্লাইম।
জ্যাকব ভিলিজ

আমি দুঃখিত যে আমি তিন দিন আগে ছুটি পেয়েছি, সুতরাং কেন আপনি ডাউনটা পেয়ে যান তা আমি জানি না, আপনার প্রাপ্য হওয়ার পরিবর্তে আমার +1 এখানে রয়েছে।
মেথাক্স

তবে আমি মনে করি এটি এমনকি
আধ্যাত্মিক


আমি জানি না কেন সুনামের খারাপ ব্যবহার না করা হলে একটি উত্তরের উত্তর / প্রশ্নকে হ্রাস করা হয় না, এই প্রশ্নটি -৩ পেয়েছে !!! hhhh আমি কেন পাই না
মেথাক্স

3

আপনি image magickপ্যাক রূপান্তর কমান্ড ব্যবহার করতে পারেন ।
ইনস্টল করতে sudo apt-get install imagemagickবা sudo yum install ImageMagick
তারপরে -crop geometryছবিটি ক্রপ করতে ব্যবহার করুন । আরও পড়ার জন্য এখানে পড়ুন



না, -cropবিকল্প দেয় xএবং yএটি অফসেট এবং gravity। যাতে আপনি এটি সময়ে সময়ে একটি বর্গক্ষেত্র
কাটাতে

আমি এটিকে উত্তর হিসাবে পোস্ট করেছি, যাইহোক আপনার সহায়তার জন্য ধন্যবাদ, তবে আপনার উত্তরটি আগে লিখতে হবে 4
মেথাক্স

@ অ্যারোনিকাল ধন্যবাদ আমি ইতিমধ্যে এটি পেয়েছি এবং উত্তর হিসাবে পোস্ট করা। দয়া করে এটি দেখুন
মেথাক্স


1

cropকমান্ড 4 টি জিনিস দরকার। এটি বুঝতে আপনি যে চিত্রটি ক্রপ করতে চান তা গ্রহণ করুন। এখন, ধারণা করুন যে চিত্রটিতে আপনি মাপের একটি আয়তক্ষেত্র অঙ্কন করছেন যা আপনি ধরে রাখতে চান। এই আয়তক্ষেত্রের বাইরের অঞ্চলটি মুছে ফেলা হবে, ক্রপ করা হবে। আয়তক্ষেত্রটি কাত হওয়া উচিত নয়, উপরের দিকটি অবশ্যই অনুভূমিক হওয়া উচিত।

এখন, এই 4 টি জিনিস নোট করুন:

  1. আয়তক্ষেত্রের পিক্সেলের প্রস্থ (ডাব্লু)
  2. আয়তক্ষেত্রের উচ্চতা (এইচ)
  3. চিত্রের বাম মার্জিন / প্রান্ত (এল) থেকে আয়তক্ষেত্রের বাম উল্লম্ব দিকের দূরত্ব
  4. চিত্রের উপরের মার্জিন / প্রান্ত থেকে আয়তক্ষেত্রের উপরের দিকের দূরত্ব (টি))

সুতরাং আপনি এখন ডাব্লু, এইচ, এল এবং টি মান আছে। এ পর্যন্ত সব ঠিকই. পিক্সেলগুলি জানতে, আপনি উবুন্টুতে কুরুল সরঞ্জাম ইনস্টল করতে পারেন । খুব দরকারী.

এখন, টার্মিনালটি খুলুন এবং যেখানে ফোল্ডারটি চিত্রটি সংরক্ষিত আছে সেখানে যান। নিম্নলিখিত কমান্ডটি ব্যবহার করুন এবং ডাব্লু, এইচ, এল এবং টি এর মানগুলি সঠিকভাবে রাখুন:

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