حتماً وقتی میخواهید تصاویر خود را تغییر اندازه دهید از نرمافزار Gimp استفاده میکنید، حال اگر بخواهید ۱۰، ۲۰، ۳۰، و یا حتی ۱۰۰ تصویر را تغییر اندازه دهید چه؟ باز میتوانید از Gimp استفاده کنید، ولی با ImageMagic بهسرعت میتوانید این کار را انجام دهید. چگونه؟ با ما همراه باشید.
به دو صورت میتوان تصاویر را تغییر اندازه داد. اولین حالت حالتی است که نسبت طول به عرض موردتوجه قرار بگیرد و دومین حالت حالتی است که ایننسبت موردتوجه قرار نگیرد و تصویر بهاصطلاح کشیده شود.
بهعنوان مثال من دو تصویر زیر را یک بار با در نظر گرفتننسبت طول و عرض تغییر اندازه می دهم و بار دیگم میکشم (Scale). در سمت چپ تصویر اصلی وجود دارد و در سمت راست تصاویر تغییر اندازه یافته قرار دارند.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
برای حالت اول از دستورات زیر استفاده شده است:
convert dragon.gif -resize 64x64 resize_dragon.gif convert terminal.gif -resize 64x64 resize_terminal.gif
برای حالت دوم نیز از دستورات زیر استفاده شده است:
convert dragon.gif -resize 64x64\! exact_dragon.gif convert terminal.gif -resize 64x64\! exact_terminal.gif
که تصاویر با استفاده از دستور Convert و گزینهی -resize به ابعاد ۶۴ در ۶۴ تغییر اندازه دادهشدهاند. همانطور که میبینید تصویر ترمینال که تصویری کوچک است نیز به ابعاد بزرگتر تغییر اندازه دادهشده است حالا اگر بخواهید این اتفاق برای تصاویر کوچک رخ ندهد و در همان ابعاد اصلی خود بمانند باید دستور را به روش زیر اجرا کنید.
convert dragon.gif -resize 64x64\> shrink_dragon.gif convert terminal.gif -resize 64x64\> shrink_terminal.gif
که خروجی آن مانند تصاویر زیر خواهد بود.
![]() |
![]() |
![]() |
![]() |
همچنین اگر علامت < بعد اعداد را به > تبدیل کنید برعکس این عمل رخ خواهد داد.
convert dragon.gif -resize 64x64\< shrink_dragon.gif convert terminal.gif -resize 64x64\< shrink_terminal.gif
![]() |
![]() |
![]() |
![]() |
دیدهاید که وقتی میخواهید تصاویری را در Gimp تغییر اندازه دهید اگر کنار کادری که اندازه ها را وارد میکنیم آن دکمهای که شبیه زنجیر است فعال باشد نصب طول و عرض در نظر گرفته میشود و اعداد شما متناسب با آننسبت طول و عرض که میخواهید تغییر میکند. در اینجا نیز اگر از علامت ^ یا هشتک استفاده کنید چنین اتفاقی روی خواهد داد.
convert dragon.gif -resize 64x64^ fill_dragon.gif convert terminal.gif -resize 64x64^ fill_terminal.gif
که خروجی کار به صورت زیر خواهد بود.
![]() |
![]() |
![]() |
![]() |
حالا اگر بخواهید تصاویر را Crop هم بکنید میتوانید از گزینهی extent استفاده کنید. به شکل ساده دستور زیر به این سبک نوشته میشود.
convert dragon.gif -extent 64x64 croped_dragon.gif
حال اگر بخواهید که عمل Crop از وسط شروع شود گزینهی gravity را نیز بر روی center میگزاریم.
convert dragon.gif -gravity center -extent 64x64 croped_dragon.gif
خروجی دو دستور بالا به صورت زیر هستند:
![]() |
![]() |
![]() |
![]() |
اگر میخواهید تا بهصورت درصدی مقادیر را اعمال کنید مثلاً اندازهی تصویر را ۵۰ درصد کمتر کنید دستورات زیر را وارد کنید:
convert dragon.gif -resize 50% half_dragon.gif convert terminal.gif -resize 50% half_terminal.gif
که خروجی آن به این شکل خواهد بود.
![]() |
![]() |
![]() |
![]() |
حتماً لازم نیست که خروجی و ورودی در قالب یکسانی باشند به این شکل که میتوان ورودی png داد و خروجی jpg دریافت کرد به مثال زیر توجه کنید:
convert rose.jpg -resize 120 rose.png
در مثال فوق اندازهای خاص را دادهایم که خودش بهطور خودکار طول و عرض را با در نظر گرفتن نصب طول به عرض تصویر و عدد دادهشده تغییرمی دهد. اگر عدد خالی باشد عرض و اگر با x بیاید طول است.
convert rose.jpg -resize x220 rose.png
با دستور rotate هم میشود تصویر را چرخاند که برای آن مقدار درجهی چرخش را مینویسیم:
convert rose.jpg -rotate 180 rose.png
![]() |
![]() |
![]() |
حال میرسیم به قسمت اصلی که این مقاله را برای آن نوشتم! بله اگر ۱۰۰ فایل را بخواهیم تغییر دهیم چه؟ سؤال ساده است از حلقهی for و دستور convert بهره میبریم! به این شکل:
for file in *.gif; do convert $file -resize 60x60 resized-$file; done
حالا دیگر انجام کارهای بهتر و fun تر با خودتان است و دانشتان از Bash Script. برای این قسمت تا همینجا بسنده میکنم با ما همراه باشید تا در قسمت بعد موارد جالبتری را شاهد باشید! حالا قضاوت را به خود شما واگذار میکنم که با قرار دادن این گزینهها در کنار هم و به کار بردن قدرت Bash Script چهکارها که نمیتوان انجام داد آنهم به سرعتی بسیار بالا بر روی چندین فایل! آیا فتوشاپ میتواند چنین کاری انجام دهد؟
3 دیدگاه برای این نوشته:
محمد:
۱۷ خرداد ۱۳۹۳ بسیار عالی و کاربردی بود، واقعا خسته نباشیroka:
۱۷ خرداد ۱۳۹۳ نصبت نیستا!!! نسبته :))) متن جالب و مفیدی بود. ممنون ;)احسان ترک:
۱۷ خرداد ۱۳۹۳ مثل اینکه این نصبت!!! دست از سر من ب نمی داره. درستش کردم.