سورس کد نرم افزار تغییر مشخصات تصاویر بصورت دسته جمعی در سی شارپ


در دنیای امروز، ویرایش و مدیریت حجم زیادی از تصاویر، یکی از نیازهای اساسی کاربران و توسعه‌دهندگان نرم‌افزارها است. بسیاری از افراد، چه برای پروژه‌های حرفه‌ای و چه برای کارهای شخصی، نیاز دارند تا اطلاعات متا یا همان مشخصات تصاویر را به صورت دسته جمعی تغییر دهند. این عملیات شامل تغییرات مانند اصلاح تاریخ ثبت، تغییر فرمت فایل، افزودن یا حذف اطلاعات EXIF، و تغییر ابعاد تصاویر می‌شود. در این راستا، زبان برنامه‌نویسی سی شارپ (C#) به دلیل قدرت، سادگی، و قابلیت‌های فراوان، یکی از بهترین گزینه‌ها برای توسعه چنین نرم‌افزارهایی است.
در ادامه، قصد دارم به صورت کامل و جامع درباره سورس کد نرم‌افزار تغییر مشخصات تصاویر بصورت دسته جمعی در سی شارپ توضیح دهم. این توضیحات شامل ساختار کلی برنامه، نحوه کارکرد، قسمت‌های مختلف کد، و نکات مهم در پیاده‌سازی است. هدف این است که شما بتوانید با مطالعه این متن، درک عمیقی از فرآیند پیاده‌سازی چنین برنامه‌ای پیدا کنید و حتی در صورت نیاز، آن را توسعه دهید یا سفارشی‌سازی کنید.

ساختار کلی برنامه




در ابتدا، باید بدانید که این نوع نرم‌افزار معمولاً شامل بخش‌های زیر است:
  1. انتخاب مسیر فایل‌ها یا پوشه‌ها: کاربر باید بتواند مسیر تصاویر مورد نظر خود را انتخاب کند.

  1. بارگذاری و خواندن تصاویر: نرم‌افزار باید قادر باشد تصاویر موجود در مسیر مشخص‌شده را به درستی شناسایی و بارگذاری کند.

  1. تغییر مشخصات یا متادیتا: عملیات اصلی، شامل تغییر مشخصات مانند تاریخ، فرمت، یا اطلاعات EXIF است.

  1. ذخیره‌سازی مجدد تصاویر با مشخصات جدید: پس از تغییر، تصاویر باید با مشخصات جدید ذخیره شوند.

  1. پیشنمایش یا گزارش عملیات: برای اطلاع کاربر از وضعیت عملیات، می‌توان یک گزارش کوتاه یا لیست تغییرات نمایش داد.

    پیاده‌سازی در سی شارپ




برای پیاده‌سازی این برنامه، نیازمند استفاده از چند کتابخانه و تکنولوژی هستیم. مهم‌ترین آن‌ها، `System.IO` برای کار با فایل‌ها و پوشه‌ها، و `System.Drawing` برای کار با تصاویر است. اما، برای ویرایش مشخصات متا و EXIF، بهتر است از کتابخانه‌های خارجی مانند `MetadataExtractor` یا `ExifLib` بهره ببریم که قابلیت خواندن و نوشتن این اطلاعات را دارند.

۱. انتخاب مسیر تصاویر




در این قسمت، یک کنترل `FolderBrowserDialog` قرار می‌دهیم تا کاربر بتواند مسیر مورد نظر خود را انتخاب کند. سپس، با استفاده از `Directory.GetFiles()`، لیستی از تصاویر موجود در مسیر را دریافت می‌کنیم. معمولاً، فرمت‌های تصویری مانند JPEG، PNG، و BMP پشتیبانی می‌شوند و باید فیلتر مناسب اعمال شود.
csharp  

using System.IO;

...

string folderPath = "";

OpenFileDialog folderDialog = new OpenFileDialog();

folderDialog.Description = "Select Images Folder";

folderDialog.ValidateNames = false;

folderDialog.CheckFileExists = false;

folderDialog.CheckPathExists = true;

if (folderDialog.ShowDialog() == DialogResult.OK)

{

folderPath = Path.GetDirectoryName(folderDialog.FileName);

}

string[] imageFiles = Directory.GetFiles(folderPath, "*.*", SearchOption.AllDirectories)

.Where(s => s.EndsWith(".jpg") || s.EndsWith(".jpeg") || s.EndsWith(".png"))

.ToArray();


۲. خواندن و ویرایش مشخصات تصاویر




برای دسترسی و تغییر مشخصات، باید از کتابخانه‌های خاصی بهره ببریم. فرض کنیم که از `MetadataExtractor` استفاده می‌کنیم. ای... ← ادامه مطلب در magicfile.ir