ساخت اسکریپت برای تبدیل فایل‌های تصویری با پایتون

ساخت اسکریپت برای تبدیل فایل‌های تصویری با پایتون

در دنیای دیجیتال امروز، پردازش و تبدیل فایل‌های تصویری یکی از نیازهای اساسی در بسیاری از زمینه‌ها است. از ویرایش عکس‌های شخصی گرفته تا آماده‌سازی تصاویر برای وب و کاربردهای تخصصی‌تر مانند پردازش تصویر در هوش مصنوعی، نیاز به ابزارهایی برای انجام این کارها به صورت خودکار و کارآمد وجود دارد. پایتون، با کتابخانه‌های قدرتمند و متنوع خود، یک انتخاب عالی برای ساخت اسکریپت‌هایی است که می‌توانند این وظایف را به آسانی انجام دهند. این مقاله به آموزش گام به گام ساخت یک اسکریپت پایتون برای تبدیل فایل‌های تصویری می‌پردازد و در دسته بندی ‘اتوماسیون و اسکریپت‌نویسی’ قرار می‌گیرد.

پیش‌نیازها

قبل از شروع، اطمینان حاصل کنید که موارد زیر را در سیستم خود نصب دارید:

  • پایتون (نسخه 3.6 یا بالاتر توصیه می‌شود)
  • کتابخانه Pillow (PIL): برای کار با تصاویر
  • کتابخانه argparse: برای مدیریت آرگومان‌های خط فرمان (اختیاری، اما توصیه می‌شود)

برای نصب Pillow، می‌توانید از دستور زیر در ترمینال یا خط فرمان استفاده کنید:

pip install Pillow

کتابخانه argparse معمولاً به صورت پیش‌فرض با پایتون نصب است. در صورت عدم وجود، می‌توانید آن را نیز با pip نصب کنید:

pip install argparse

مراحل ساخت اسکریپت

1. وارد کردن کتابخانه‌های مورد نیاز

در ابتدا، باید کتابخانه‌های مورد نیاز را در اسکریپت خود وارد کنید:

from PIL import Image
import argparse
import os

توضیح:

  • PIL (Pillow): برای باز کردن، ویرایش و ذخیره تصاویر استفاده می‌شود.
  • argparse: برای تعریف و پردازش آرگومان‌های خط فرمان استفاده می‌شود.
  • os: برای کار با سیستم عامل، مانند بررسی وجود فایل‌ها و ایجاد دایرکتوری‌ها استفاده می‌شود.

2. تعریف آرگومان‌های خط فرمان

استفاده از آرگومان‌های خط فرمان به شما امکان می‌دهد تا اسکریپت را با پارامترهای مختلف اجرا کنید، مانند مسیر فایل ورودی، مسیر فایل خروجی و فرمت تصویر خروجی. برای تعریف آرگومان‌ها، از کتابخانه argparse استفاده می‌کنیم:

parser = argparse.ArgumentParser(description='تبدیل فایل‌های تصویری به فرمت‌های مختلف.')
parser.add_argument('input_file', help='مسیر فایل تصویری ورودی.')
parser.add_argument('output_file', help='مسیر فایل تصویری خروجی.')
parser.add_argument('--format', default='jpeg', help='فرمت تصویر خروجی (jpeg, png, gif, bmp و غیره). پیش‌فرض: jpeg')
args = parser.parse_args()

توضیح:

  • parser = argparse.ArgumentParser(...): یک شیء ArgumentParser ایجاد می‌کند که برای تعریف آرگومان‌ها استفاده می‌شود.
  • parser.add_argument(...): یک آرگومان جدید را تعریف می‌کند.
  • args = parser.parse_args(): آرگومان‌های خط فرمان را پردازش می‌کند و در شیء args ذخیره می‌کند.

3. باز کردن تصویر ورودی

با استفاده از کتابخانه Pillow، تصویر ورودی را باز می‌کنیم:

try:
    img = Image.open(args.input_file)
except FileNotFoundError:
    print(f"خطا: فایل '{args.input_file}' یافت نشد.")
    exit()
except Exception as e:
    print(f"خطا در باز کردن فایل: {e}")
    exit()

توضیح:

  • Image.open(args.input_file): تصویر را از مسیر مشخص شده باز می‌کند.
  • try...except: برای مدیریت خطاها استفاده می‌شود. اگر فایل یافت نشد یا در باز کردن آن مشکلی وجود داشت، پیام خطا نمایش داده می‌شود و اسکریپت متوقف می‌شود.

4. تبدیل و ذخیره تصویر

در این مرحله، تصویر را به فرمت مورد نظر تبدیل و ذخیره می‌کنیم:

try:
    img.save(args.output_file, format=args.format)
    print(f"تصویر با موفقیت به '{args.output_file}' تبدیل شد.")
except Exception as e:
    print(f"خطا در ذخیره فایل: {e}")

توضیح:

  • img.save(args.output_file, format=args.format): تصویر را در مسیر مشخص شده و با فرمت مورد نظر ذخیره می‌کند.
  • try...except: برای مدیریت خطاها استفاده می‌شود. اگر در ذخیره فایل مشکلی وجود داشت، پیام خطا نمایش داده می‌شود.

5. کد کامل اسکریپت

در اینجا کد کامل اسکریپت را مشاهده می‌کنید:

from PIL import Image
import argparse
import os

parser = argparse.ArgumentParser(description='تبدیل فایل‌های تصویری به فرمت‌های مختلف.')
parser.add_argument('input_file', help='مسیر فایل تصویری ورودی.')
parser.add_argument('output_file', help='مسیر فایل تصویری خروجی.')
parser.add_argument('--format', default='jpeg', help='فرمت تصویر خروجی (jpeg, png, gif, bmp و غیره). پیش‌فرض: jpeg')
args = parser.parse_args()

try:
    img = Image.open(args.input_file)
except FileNotFoundError:
    print(f"خطا: فایل '{args.input_file}' یافت نشد.")
    exit()
except Exception as e:
    print(f"خطا در باز کردن فایل: {e}")
    exit()

try:
    img.save(args.output_file, format=args.format)
    print(f"تصویر با موفقیت به '{args.output_file}' تبدیل شد.")
except Exception as e:
    print(f"خطا در ذخیره فایل: {e}")

نحوه استفاده از اسکریپت

برای استفاده از اسکریپت، آن را در ترمینال یا خط فرمان اجرا کنید و آرگومان‌های مورد نیاز را ارائه دهید. به عنوان مثال:

python convert_image.py input.png output.jpg --format png

در این مثال:

  • convert_image.py: نام فایل اسکریپت پایتون است.
  • input.png: مسیر فایل تصویری ورودی است.
  • output.jpg: مسیر فایل تصویری خروجی است.
  • --format png: فرمت تصویر خروجی را به PNG تغییر می‌دهد.

توسعه و بهبود اسکریپت

این اسکریپت یک پایه ساده برای تبدیل فایل‌های تصویری است. می‌توانید آن را با افزودن ویژگی‌های بیشتر توسعه دهید، مانند:

  • تغییر اندازه تصویر
  • اعمال فیلترها و افکت‌ها
  • بهینه‌سازی تصاویر برای وب
  • پشتیبانی از تبدیل دسته‌ای (تبدیل چندین فایل به صورت همزمان)
  • اضافه کردن رابط کاربری گرافیکی (GUI)

برای مثال، برای تغییر اندازه تصویر، می‌توانید از متد resize() کتابخانه Pillow استفاده کنید:

img = img.resize((width, height))

که در آن width و height ابعاد جدید تصویر هستند.

نتیجه‌گیری

در این مقاله، نحوه ساخت یک اسکریپت پایتون برای تبدیل فایل‌های تصویری را آموزش دادیم. با استفاده از کتابخانه‌های Pillow و argparse، می‌توانید یک ابزار قدرتمند و انعطاف‌پذیر برای پردازش تصاویر ایجاد کنید. این اسکریپت می‌تواند به شما در اتوماسیون وظایف مربوط به تصاویر کمک کند و زمان و تلاش شما را صرفه‌جویی کند. با توسعه و بهبود این اسکریپت، می‌توانید آن را به یک ابزار حرفه‌ای برای نیازهای خاص خود تبدیل کنید.

بدون دیدگاه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *