ImageMagick ابزاری متنباز متشکل از دستورات خطی برای مدیریت تصاویر دیجیتال است. کاربرد این ابزار در اعمال تغییرات در حجم بالا و تعداد بالا یا اجرا تغییرات دقیق بر روی تصاویر میباشد. توسعه ImageMagick در سال 1987 توسط جان کریستی(John Cristy) که یک مهندس نرمافزار بود، آغاز شد. IMagickجزیی پیشفرض در بسیاری از سیستمهاملهای Linux و BSD است و همچنین به صورت رایگان نیز برای ویندوز، macOS و iOS نیز در دسترس میباشد.
ابزار و ویژگیهای ImageMagick
ابزار موجود در ImageMagick به موارد جداگانه که هر یک دارای دستورات خود هستند، تقسیم میشوند:
- Animate: این دستور مجموعهای از تصاویر را به صورت انیمیشن نمایش میدهد.
- Compare: این دستور امکان آنالیز دو تصویر و تصویرسازی تغییرات ریاضی موجود بین دو تصویر را فراهم میآورد.
- Composite:با متغیر شفافیت یا Transparency امکان ترکیب دو تصویر را ایجاد میکند.
- Conjure: اسکریپتهای نوشته شده در MSL که زبان نوشتاری ImageMagick است را تفسیر و اجرا مینماید.
- Convert: تبدیل تصاویر از یک فرمت به فرمت دیگر. این ابزار همچنین امکان اعمال تغییرات بصری بر روی تصویر همچون برش و محو کردن را دارد.
- Display: یک برنامه مشاهده تصاویر است.
- Identify: این دستور ابعاد، کیفیت و سایر متادیتاهای تصویر را نمایش میدهد.
- Mogrify: امکان تغییر یک تصویر را مشابه با دستور Convert انجام میدهد. اما با این تفاوت که بازنویسی بر روی تصویر اصلی صورت میگیرد.
- montage: این دستور امکان ساخت یک تصویر متشکل از تصاویر کوچکتر را میسر میسازد.
- stream: دادههای مربوط به تصویر را پردازش و در یک فایل ذخیره مینماید. برای شرایط مواجهه با استریم کند یا استریم تصاویر پرحجم کاربرد دارد.
در نسخه 7 ImageMagick این ابزار از طریق دستور Magick قابل دسترسی میباشند. برای مثال برای فراخوانی ابزار Compare از دستور Magick Compare استفاده میشود. همچنین تفسیرگر اسکریپت از طریق دستور magick-script قابل دسترسی است.
نکته قابل ذکر دیگر اینست که دستورات Animate و Display و Import جهت اجرا نیاز به یک سرورX (X Windows System) دارند. در حالتی که از سرور لینوکسی یا BSD استفاده نمیکنید، امکان اجرا دستورات در macOS از طریق XQuartz و در ویندوز از طریق VcXsrv وجود دارد.
چند مثال از دستورات ImageMagick
در ادامه چند دستور را به صورت نمونه بررسی خواهیم کرد:
- دستور زیر باعث کاهش سایز عکس به میزان 25% میشود و آن را با 92% کیفیت با عنوان jpg ذخیره مینماید:
convert myimage.jpg -resize 25% -quality 92 output1.jpg
- با استفاده از دستور –ditort SRT (scale, rotate, translate) مقیاس به 50% تصویر اولیه تبدیل میشود و به 135 درجه ساعتگرد چرخش مییابد.
convert input.jpg -distort SRT .5,135 output2.jpg
- دستور زیر منجر به پیچش 720 درجهای تصویر در کنار افزایش اندازه به 120% میشود:
convert input.jpg -swirl 720 -resize 120% output3.jpg
- دستوری که در ادامه آمده است، متادیتاهای تصویرهای موجود در دایرکتوری فعلی را به شکل زیر نمایش میدهد:
identify *.jpg
متادیتا:
input.jpg[1] JPEG 200×200 200×200+0+0 8-bit sRGB 17.5KB 0.000u 0:00.000
montage.jpg[3] JPEG 268×296 268×296+0+0 8-bit sRGB 26.1KB 0.000u 0:00.000
output1.jpg[4] JPEG 50×50 50×50+0+0 8-bit sRGB 2.99KB 0.000u 0:00.000
output2.jpg[5] JPEG 200×200 100×100+0+0 8-bit sRGB 10.4KB 0.000u 0:00.000
output3.jpg[6] JPEG 240×240 240×240+0+0 8-bit sRGB 37.1KB 0.000u 0:00.000
عکسرو به فرمت webp هم تبدیل میکنه؟
با سلام
بله، ImageMagick قابلیت تبدیل تصاویر به فرمت WebP را داراست. برای این کار، میتوانید از دستور convert استفاده کنید. در زیر نحوه تبدیل یک تصویر به فرمت WebP با استفاده از ImageMagick آمده است:
convert input.jpg output.webp
مرسی از اینکه جواب داید.
این روش، تصاویر قدیمی سایت رو هم به webp تبدیل میکنه اتوماتیک؟؟؟ و یه سوال دیگه اینکه، اینکُد تصاویر به webp تبدیل میشه ؟؟
زنده باشید، دستور convert از ImageMagick تنها تصاویر را به فرمت WebP تبدیل میکند و تغییرات را در فایلها ذخیره میکند. این دستور از تصاویر قدیمی یا جدید بر اساس نیاز شما استفاده میکند. اما تبدیل تصاویر به WebP فقط از جنبه فرمت فایل است و اگر نیاز به بهروزرسانی کدها و یا تغییرات در ساختار تصاویر (به عنوان مثال، ابعاد یا کیفیت) دارید، باید مراقب باشید که تصاویر مناسب بمانند.
اگر میخواهید کد HTML، CSS یا JavaScript خود را به گونهای تغییر دهید که از تصاویر WebP استفاده کند، باید بهطور دستی کدهای مربوطه را اصلاح کنید. برخی از مرورگرها بهطور خودکار از تصاویر WebP پشتیبانی میکنند، اما شما باید تغییرات لازم را در کدهای خود ایجاد کنید.