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

شما می توانید جزئیات تصویر مانند ارتفاع، عرض، ساخت، مدل و غیره را که در قالب ابرداده ذخیره شده اند به صورت برنامه ریزی شده اضافه، ویرایش، حذف یا استخراج کنید. به‌عنوان یک توسعه‌دهنده سی شارپ، می‌توانید به راحتی اطلاعات فراداده تصاویر را به‌صورت برنامه‌نویسی در فضای ابری استخراج و دستکاری کنید. در این مقاله نحوه استخراج و دستکاری متادیتای تصاویر را با استفاده از REST API در سی شارپ یاد خواهید گرفت.

موضوعات زیر در این مقاله مورد بحث/پوشش قرار گرفته است:

Document Metadata Manipulation REST API و NET SDK

برای دستکاری ابرداده تصاویر JPEG، من از .NET SDK از GroupDocs.Metadata Cloud API استفاده خواهم کرد. این به شما امکان می دهد ویژگی های ابرداده را از اسناد و فرمت های فایل تصویری اضافه، ویرایش، بازیابی و حذف کنید. فقط باید معیارهای جستجو را تعریف کنید و ابرداده Cloud REST API از عملیات فوق داده مشخص شده در [فرمت های فایل پشتیبانی شده] مراقبت می کند. همچنین جاوا SDK را به عنوان [اعضای خانواده دستکاری فراداده سند4 برای Cloud API ارائه می‌کند.

می‌توانید GroupDocs.Metadata را در پروژه ویژوال استودیو خود از Package Manager NuGet یا با استفاده از دستور زیر در کنسول Package Manager نصب کنید:

Install-Package GroupDocs.Metadata-Cloud

لطفاً قبل از شروع به دنبال کردن مراحل و نمونه‌های کد موجود، شناسه مشتری و راز مشتری خود را از داشبورد دریافت کنید. هنگامی که شناسه مشتری و Secret خود را دریافت کردید، کد را مطابق شکل زیر اضافه کنید:

string clientID = "112f0f38-9dae-42d5-b4fc-cc84ae644972";
string clientSecret = "16ad3fe0bdc39c910f57d2fd48a5d618";
string myStorage = "";

Configuration configuration = new Configuration(clientID, clientSecret);
configuration.ApiBaseUrl = "https://api.groupdocs.cloud";

اضافه کردن متادیتا به تصاویر با استفاده از REST API در سی شارپ

با دنبال کردن مراحل ساده زیر می توانید متادیتا را به تصاویر اضافه کنید:

تصویر را آپلود کنید

ابتدا فایل JPEG را با استفاده از نمونه کد زیر در Cloud آپلود کنید:

// مقداردهی اولیه api
FileApi fileApi = new FileApi(configuration);
string path = @"C:\Files";

var file = Directory.GetFiles(path, "input.jpg", SearchOption.AllDirectories).FirstOrDefault();
if (file.Length != 0)
{
    var relativeFilePath = file.Replace(path, string.Empty).Trim(Path.DirectorySeparatorChar);

    var fileStream = File.Open(file, FileMode.Open);

    fileApi.UploadFile(new UploadFileRequest(relativeFilePath, fileStream, myStorage));
    fileStream.Close();
}

در نتیجه، فایل تصویری JPEG آپلود شده در بخش فایل ها داشبورد شما در فضای ابری در دسترس خواهد بود.

اضافه کردن متادیتا به تصویر با استفاده از سی شارپ

با دنبال کردن مراحل زیر می‌توانید متادیتا را به صورت برنامه‌نویسی به تصویر JPEG اضافه کنید.

  • یک نمونه از MetadataApi ایجاد کنید
  • مسیر فایل تصویری JPEG را در مدل FileInfo تنظیم کنید
  • AddOptions را تعریف کنید
  • با استفاده از مدل AddProperty مقدار و SearchCriteria را برای ویژگی تنظیم کنید
  • AddRequest را با AddOptions ایجاد کنید
  • با فراخوانی متد MetadataApi.Add() به نتیجه برسید

نمونه کد زیر نشان می دهد که چگونه می توان ابرداده را با استفاده از REST API به یک تصویر JPEG اضافه کرد.

// مقداردهی اولیه api
var apiInstance = new MetadataApi(configuration);

// مسیر تصویر ورودی
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
    FilePath = "input.jpg"
};

// گزینه های افزودن متادیتا را تعریف کنید
var options = new AddOptions
{
    FileInfo = fileInfo,
    Properties = new List<AddProperty>
    {
        new AddProperty
        {
            Value = "All rights reserved.",
            Type = "String",
            SearchCriteria = new SearchCriteria
            {
                TagOptions = new TagOptions
                {
                    PossibleName = "Copyright"
                }
            },
        }
    }
};

// اضافه کردن درخواست
var request = new AddRequest(options);
var response = apiInstance.Add(request);
اضافه کردن متادیتا از تصاویر با استفاده از REST API در سی شارپ

اضافه کردن متادیتا از تصاویر با استفاده از REST API در سی شارپ

تصویر را دانلود کنید

نمونه کد بالا فایل JPEG به روز شده را در فضای ابری ذخیره می کند و با استفاده از نمونه کد زیر قابل دانلود است:

// مقداردهی اولیه api
var fileApi = new FileApi(configuration);

// مسیر پیش فرض
var file = "metadata\\add_metadata\\input_jpg\\input.jpg";

// درخواست دانلود
var downloadRequest = new DownloadFileRequest(file, myStorage);

Stream downloadResponse = fileApi.DownloadFile(downloadRequest);
using (var fileStream = File.Create("C:\\Files\\input.jpg"))
{
    downloadResponse.Seek(0, SeekOrigin.Begin);
    downloadResponse.CopyTo(fileStream);
}

به روز رسانی متادیتای تصویر با استفاده از سی شارپ

با دنبال کردن مراحل زیر می توانید متادیتای تصویر JPEG را به صورت برنامه نویسی به روز کنید.

  • یک نمونه از MetadataApi ایجاد کنید
  • مسیر فایل تصویری JPEG را در مدل FileInfo تنظیم کنید
  • SetOptions را تعریف کنید
  • با استفاده از مدل SetProperty، NewValue و SearchCriteria را برای ویژگی تنظیم کنید
  • SetRequest را با SetOptions ایجاد کنید
  • با فراخوانی متد MetadataApi.Set() به نتیجه برسید

نمونه کد زیر نحوه تنظیم فراداده یک تصویر JPEG را با استفاده از REST API نشان می دهد. لطفاً برای آپلود و دانلود یک فایل مراحل ذکر شده را دنبال کنید.

// مقداردهی اولیه api
var apiInstance = new MetadataApi(configuration);

// مسیر تصویر ورودی
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
    FilePath = "input.jpg"
};

// گزینه های مجموعه ابرداده را تعریف کنید
var options = new SetOptions
{
    FileInfo = fileInfo,
    Properties = new List<SetProperty>
    {
        new SetProperty
        {
            NewValue = "Copyright 2021",
            SearchCriteria = new SearchCriteria
            {
                TagOptions = new TagOptions
                {
                    PossibleName = "Copyright"
                }
            },
            Type = "String"
        }
    }
};

// درخواست به روز رسانی
var request = new SetRequest(options);
var response = apiInstance.Set(request);
به روز رسانی متادیتا از تصاویر با استفاده از REST API در سی شارپ

به روز رسانی متادیتا از تصاویر با استفاده از REST API در سی شارپ

حذف متادیتا از تصویر با استفاده از سی شارپ

با دنبال کردن مراحل زیر می توانید متادیتا را از تصویر JPEG به صورت برنامه ریزی شده حذف کنید.

  • یک نمونه از MetadataApi ایجاد کنید
  • مسیر فایل تصویری JPEG را در مدل FileInfo تنظیم کنید
  • RemoveOptions را تعریف کنید
  • معیارهای جستجو را تنظیم کنید
  • RemoveRequest را با RemoveOptions ایجاد کنید
  • با فراخوانی متد MetadataApi.Remove() به نتیجه برسید

نمونه کد زیر نحوه حذف متادیتا را از یک تصویر JPEG با استفاده از REST API نشان می دهد. لطفاً برای آپلود و دانلود یک فایل مراحل ذکر شده را دنبال کنید.

// مقداردهی اولیه api
var apiInstance = new MetadataApi(configuration);

// مسیر تصویر ورودی
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
    FilePath = "input.jpg"
};

// گزینه های حذف ابرداده را تعریف کنید
var options = new RemoveOptions
{
    FileInfo = fileInfo,
    SearchCriteria = new SearchCriteria
    {
        TagOptions = new TagOptions
        {
            PossibleName = "Copyright"
        }
    }
};

// حذف درخواست
var request = new RemoveRequest(options);
var response = apiInstance.Remove(request);
حذف متادیتا از تصاویر با استفاده از REST API در سی شارپ

حذف متادیتا از تصاویر با استفاده از REST API در سی شارپ

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

با دنبال کردن مراحل زیر می‌توانید متادیتا را از تصویر JPEG به صورت برنامه‌نویسی استخراج کنید.

  • یک نمونه از MetadataApi ایجاد کنید
  • مسیر فایل تصویری JPEG را در مدل FileInfo تنظیم کنید
  • ExtractOptions را تعریف کنید
  • ExtractRequest را با ExtractOptions ایجاد کنید
  • با فراخوانی متد MetadataApi.Extract() به نتیجه برسید

نمونه کد زیر نحوه استخراج ابرداده از یک تصویر JPEG با استفاده از REST API را نشان می دهد. لطفاً برای آپلود فایل مراحل ذکر شده قبلی را دنبال کنید.

// مقداردهی اولیه api
var apiInstance = new MetadataApi(configuration);

// منبع فایل
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
    FilePath = "input.jpg"
};

// استخراج گزینه ها
var options = new ExtractOptions
{
    FileInfo = fileInfo
};

// درخواست استخراج
var request = new ExtractRequest(options);
var response = apiInstance.Extract(request);

// فراداده استخراج شده
if (response.MetadataTree.InnerPackages != null)
{
    var innerPackages = response.MetadataTree.InnerPackages;
   for (int i = 0; i < innerPackages.Count; i++)
    {
        Console.WriteLine($"\nPackage: {innerPackages[i].PackageName}");
        var packageProperties = innerPackages[i].PackageProperties;
       for (int j = 0; j < packageProperties.Count; j++)
        {
            Console.WriteLine(packageProperties[j].Name + " : " + packageProperties[j].Value);
        }
    }
}
فراداده تصویر

فراداده تصویر

نمونه کد بالا خروجی زیر را تولید می کند:

Package: FileFormat
FileFormat : 9
MimeType : image/jpeg
ByteOrder : 1
Width : 480
Height : 360

Package: Xmp
http://ns.microsoft.com/photo/1.0/ :

Package: Exif
Exif.GpsIfd :
Exif.ExifIfd :
Make : Canon
Model : Canon PowerShot S40
Orientation : System.Int32[]
XResolution : System.Double[]
YResolution : System.Double[]
ResolutionUnit : System.Int32[]
DateTime : 2003:12:14 12:01:44
YCbCrPositioning : System.Int32[]
ExifIfd : System.Int64[]
Exif.Thumbnail : System.Byte[] 

آنلاین را امتحان کنید

لطفاً ابزار آنلاین رایگان دستکاری فراداده JPEG را که با استفاده از API فوق توسعه یافته است، امتحان کنید. https://products.groupdocs.app/metadata/jpeg

نتیجه

در این مقاله نحوه افزودن، ویرایش، حذف و استخراج متادیتا از تصاویر در فضای ابری را یاد گرفتید. در این مقاله همچنین نحوه آپلود برنامه‌ای فایل تصویری JPEG بر روی ابر و دانلود آن از ابر توضیح داده شده است. با استفاده از مستندات می‌توانید حتی بیشتر درباره GroupDocs.Metadata Manipulation Cloud API بیاموزید. ما همچنین یک بخش API Reference ارائه می‌کنیم که به شما امکان می‌دهد APIهای ما را مستقیماً از طریق مرورگر تجسم کرده و با آن‌ها تعامل داشته باشید. در صورت وجود هرگونه ابهام، لطفاً با ما در [تالار] تماس بگیرید17.

همچنین ببینید