টার্মিনাল থেকে চিত্রগুলি ঘোরান


34

প্রচুর চিত্র সহ আমার একটি ডিরেক্টরি আছে তবে সেগুলি ভুল দিকনির্দেশে। আমি সঠিক স্থিতিবিন্যাস (বেশিরভাগই ± 90 ইমেজ ঘোরাতে চান )। চিত্র (শটওয়েল ফটো) ভিউয়ার ব্যবহার করে আমি ঘোরানো বোতামটি ক্লিক করে স্বতন্ত্রভাবে তাদের ঘোরতে পারি তবে এটি খুব ক্লান্তিকর।

আমি দিকে তাকিয়ে man shotwellএবং shotwell --help-allকিন্তু কিছুই ব্যাখ্যা করেছেন যে কম্যান্ড লাইন থেকে ঘোরান কমান্ড ডাকা হয় তা দেখুন।

টার্মিনাল থেকে শটওয়েলের (বা অন্য কোনও দর্শকের) ঘোরানো কমান্ডটি চাওয়ার কোনও উপায় আছে কি? অথবা চিত্রগুলি ঘোরানোর জন্য অন্য কোনও পদ্ধতিও স্বাগত।


1
জিজ্ঞাসাবাবু / এ / from৩২662/২ / ১৫৮11 যদি আপনি এটি নটিলাস থেকে চান। তবে আপনি যে টার্মিনাল কমান্ডটি চান তা হ'ল "ইমেজম্যাগিক" থেকে "রূপান্তর"
রিনজউইন্ড

1
আপনি যদি কোনও ক্ষতিবিহীন ঘূর্ণন চান এবং ফাইলগুলি জেপিইগ হয় , দেখুন জেপিগ্রাটান ; চিত্রম্যাগিক একটি (স্পষ্টতই ছোট) ক্ষয়ক্ষতি ঘোরান
রোমানো

উত্তর:


39

আপনি যদি খাঁটি বাশ প্রয়োগের সন্ধান করছেন, convertআপনি যা খুঁজছেন তা ইমেজম্যাগিকের আদেশ হ'ল:

for szFile in /path/*.png
do 
    convert "$szFile" -rotate 90 /tmp/"$(basename "$szFile")" ; 
done

উপরে বিদ্যমান ফাইলগুলি অক্ষত থাকবে এবং নতুন ঘোরানো ফাইলগুলি অনুলিপি করবে /tmpযাতে আপনি এগুলিকে অন্য কোথাও স্থানান্তর বা অনুলিপি করতে পারেন বা রূপান্তর করার পরে এবং যাচাইয়ের পরে বিদ্যমান ফাইলগুলি প্রতিস্থাপন করতে পারেন

(এবং এটি উবুন্টুর সর্বশেষ প্রকাশের সাথে এটি স্ট্যান্ডার্ড সফটওয়্যার হিসাবে কাজ করবে)


28
for file in *.JPG; do convert $file -rotate 90 rotated-$file; done

এটি আপনার ফাইলগুলি অনুলিপি- ঘোরানো এবং নামকরণ করবে ।

আপনি যদি এখনও এখনও মূল ফাইলগুলি ছোঁয়া ছেড়ে দিতে চান তবে এই পদ্ধতিটি আপনার পক্ষে ভাল কাজ করতে পারে ...

মনে রাখবেন এটি কেস-সংবেদনশীল: যদি আপনার ফাইলগুলির নাম * .jpg হয় তবে সেই অনুযায়ী লোয়ার-কেস (বা * .png ...) দিয়ে প্রতিস্থাপন করুন।


4

আপনি যদি জায়গায় জায়গায় ওভাররাইট করতে চান mogrifyতবে ইমেজম্যাগিক স্যুট থেকে এটি অর্জনের সবচেয়ে সহজ উপায় বলে মনে হচ্ছে:

# counterclockwise:
mogrify -rotate -90 *.jpg

# clockwise:
mogrify -rotate 90 *.jpg

কায়েট : এটি জেপিইজি ফাইলগুলির জন্য কোনও ক্ষতিবিহীন ঘূর্ণন পদ্ধতি নয়, https://www.imagemagick.org/discourse-server/viewtopic.php?t=5899jpegtranএটি অর্জন করে (অরীক্ষিত):

# counterclockwise
ls *.jpg | xargs -n 1 jpegtran -perfect -rotate 270

# clockwise
ls *.jpg | xargs -n 1 jpegtran -perfect -rotate 90

পুরোপুরি কাজ করে
পল জোন্স

সরল, দ্রুত, ব্যাচের চিত্র সম্পাদনার কথা
এলে মোগরিফি

সেরা উত্তর, আপনি কেন এটি জায়গায় জায়গায় করতে চান না?
এমএল স্টুডেন্ট 33

1
@ এমএল স্টুডেন্ট 33: ভাল প্রশ্ন। এটি প্রদর্শিত হচ্ছে যা mogrifyজেপিজি ফাইলগুলির জন্য ক্ষতিহীন নয়, তবে jpegtran
krlmlr

3

আমি এটি কীভাবে করব তা এখানে:

  1. GThumb ইনস্টল করুন

    sudo apt-get install gthumb
  2. নটিলাস খুলুন এবং আপনার চিত্র ডিরেক্টরিতে যান। একটিতে রাইট ক্লিক করুন এবং নির্বাচন করুন Open with -> gthumb

  3. viewমেনুটির নীচে কী Browserবাছুন বা টিপুন Esc। এটি আপনার সমস্ত চিত্র দেখাচ্ছে ডিরেক্টরি ব্রাউজারটি খুলবে।

    এখানে চিত্র বর্ণনা লিখুন

  4. Ctrlআপনি যে চিত্রগুলি ঘোরাতে চান সেগুলি টিপুন বা নির্বাচন করুন বা সেগুলি সব Ctrl+ এর মাধ্যমে নির্বাচন করুন A

  5. সরঞ্জামদণ্ডে, নির্বাচন করুন Toolsএবং তারপরে Rotate Rightবা Rotate Leftআপনার পছন্দ অনুসারে।

    এখানে চিত্র বর্ণনা লিখুন


0

একটি দুর্দান্ত সমাধান হ'ল ব্যাকআপগুলির একটি সেট (যেমন উপসর্গযুক্ত backup-) করা, নতুন ফাইলগুলির সেট তৈরির মূল ফাইলগুলি ঘোরানো (যেমন উপসর্গযুক্ত ) যেমন rotated-আপনাকে একটি সেট দেয়

  • img-1.png
  • backup-img-1.png
  • rotated-img-1.png
  • img-2.png
  • ... ইত্যাদি

mv/ cpটুলস [ব্যাশ globbing] শুধুমাত্র উপসর্গ যোগ করতে পারেন, এটা নোংরা তাদের দূরে নিতে (এটা প্যারামিটার সম্প্রসারণ ব্যবহার করতে চাই, ewww ...)

renameটুল আপনি ব্যবহার করার অনুমতি দেয় s/before/after/(থেকে প্রতিকল্পন সিনট্যাক্স sedswap 'র যে রক্ষাকবচ প্রিফিক্স টুল) এবং মূল ফাইল মুছে, তাই ছবি একটি প্রদত্ত সেট আপনার সামগ্রিক প্রক্রিয়া img-{1..n}.png হবে:

for imgf in img-*.png; do mv "$imgf" "backup-$imgf"; done
for imgf in backup-img-*.png; do convert "$imgf" -rotate 90 "rotated-$imgf"; done

বিঃদ্রঃ:

  • আপনি তার cpপরিবর্তে ব্যবহার করতে পারেন mv, তবে তারপরে মূল কপিরাইটের দুটি কপি রয়েছে (খারাপ দিকটি আপনি উপসর্গের সাথে মিলিত হন, "rotated-backup- ...")
  • ঘূর্ণনটি ঘড়ির কাঁটার দিকে ( -rotate 270আপনাকে 90 ° অ্যান্টি-ক্লকওয়াইজ দেয়)
  • অগ্রগতি ট্র্যাক করতে, কলগুলির echo "Rotating ${imgf#backup-} ... ";পরে যুক্ত করুন convert(আগে done)
  • আরও কমপ্যাক্ট ফর্মের জন্য (যেমন সংখ্যাযুক্ত ফাইলগুলির একটি সেট) এর echo "$(echo ${imgf#backup-img-} | cut -d\. -f 1)...";পরিবর্তে কিছু প্যারামিটার বিস্তৃতি ব্যবহার করুন

    (আপনি একই ব্যাশ পরম প্রসারণে উপসর্গ এবং প্রত্যয় মুছে ফেলতে পারবেন না তাই ব্যবহার করুন cut)

তারপরে যাচাইকরণের পরে আপনি গোলযোগ করেননি, ছবিগুলি মূলটিতে ফিরে গিয়ে মুছুন

rename 's/^rotated-//;' rotated-*
rm backup-img-*

0

আপনি এই কোডটি অনুলিপি / আটকান এবং এটি হিসাবে সংরক্ষণ করতে পারেন rotate.sh

#!/bin/bash -e

CUR_DIR=$(pwd)
cd $1
for file in *.jpg
do
    convert $file -rotate 90 $file
done
cd $CUR_DIR

এই ফাইলটি সংরক্ষণের পরে, এটি ব্যবহার করে টার্মিনাল থেকে চালান ./rotate.sh folder_containing_images


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