استخراج البيانات الوصفية من الصور باستخدام C#

يمكنك إضافة تفاصيل الصورة أو تحريرها أو إزالتها أو استخراجها مثل الارتفاع والعرض والصنع والطراز وما إلى ذلك المخزنة في شكل بيانات وصفية برمجيًا. بصفتك مطور C# ، يمكنك بسهولة استخراج معلومات البيانات الوصفية للصور ومعالجتها برمجيًا على السحابة. في هذه المقالة ، ستتعلم كيفية استخراج البيانات الوصفية للصور ومعالجتها باستخدام واجهة برمجة تطبيقات REST في C#.

المواضيع التالية تمت مناقشتها / تناولها في هذه المقالة:

معالجة البيانات الوصفية للمستند REST API و .NET SDK

لمعالجة البيانات الوصفية لصور JPEG ، سأستخدم .NET SDK من GroupDocs.Metadata Cloud API. يسمح لك بإضافة خصائص البيانات الوصفية وتحريرها واستردادها وإزالتها من المستندات وتنسيقات ملفات الصور. تحتاج فقط إلى تحديد معايير البحث وبيانات التعريف سوف تتولى Cloud REST API عمليات البيانات الوصفية المحددة ضمن تنسيقات الملفات المدعومة. كما أنها توفر Java SDK باعتبارها أعضاء عائلة معالجة بيانات تعريف المستندات لواجهة برمجة التطبيقات السحابية.

يمكنك تثبيت GroupDocs.Metadata على مشروع Visual Studio الخاص بك من مدير الحزم NuGet أو باستخدام الأمر التالي في وحدة تحكم مدير الحزم:

Install-Package GroupDocs.Metadata-Cloud

يرجى الحصول على معرّف العميل وسر العميل من لوحة القيادة قبل البدء في اتباع الخطوات وأمثلة الكود المتاحة. بمجرد حصولك على معرّف العميل والسرية ، أضف الرمز كما هو موضح أدناه:

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 في C#

يمكنك إضافة بيانات وصفية إلى الصور باتباع الخطوات البسيطة الواردة أدناه:

قم بتحميل الصورة

أولاً ، قم بتحميل ملف JPEG على السحابة باستخدام نموذج التعليمات البرمجية الوارد أدناه:

// تهيئة 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 الذي تم تحميله متاحًا في قسم الملفات من لوحة المعلومات الخاصة بك على السحابة.

إضافة البيانات الوصفية إلى الصورة باستخدام C#

يمكنك إضافة بيانات التعريف إلى صورة JPEG برمجيًا باتباع الخطوات الواردة أدناه.

  • قم بإنشاء مثيل لـ MetadataApi
  • قم بتعيين مسار ملف صورة JPEG في نموذج FileInfo
  • تحديد AddOptions
  • قم بتعيين القيمة ومعايير البحث للخاصية باستخدام نموذج AddProperty
  • قم بإنشاء AddRequest باستخدام AddOptions
  • احصل على النتائج عن طريق استدعاء طريقة MetadataApi.Add()

يوضح نموذج التعليمات البرمجية التالي كيفية إضافة بيانات التعريف إلى صورة JPEG باستخدام REST API.

// تهيئة 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 في C#

أضف البيانات الوصفية من الصور باستخدام واجهة برمجة تطبيقات REST في C#

قم بتنزيل الصورة

ستحفظ عينات التعليمات البرمجية أعلاه ملف 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);
}

تحديث البيانات الوصفية للصورة باستخدام C#

يمكنك تحديث البيانات الوصفية لصورة JPEG برمجيًا باتباع الخطوات الواردة أدناه.

  • قم بإنشاء مثيل لـ MetadataApi
  • قم بتعيين مسار ملف صورة JPEG في نموذج FileInfo
  • حدد SetOptions
  • قم بتعيين NewValue و SearchCriteria للخاصية باستخدام نموذج SetProperty
  • قم بإنشاء 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 في C#

تحديث البيانات الوصفية من الصور باستخدام واجهة برمجة تطبيقات REST في C#

إزالة البيانات الوصفية من الصورة باستخدام C#

يمكنك إزالة البيانات الأولية من صورة 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 في C#

إزالة البيانات الوصفية من الصور باستخدام واجهة برمجة تطبيقات REST في C#

استخراج البيانات الوصفية من الصورة باستخدام C#

يمكنك استخراج البيانات الوصفية من صورة 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"
};

// استخراج optioins
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 التالية ، والتي تم تطويرها باستخدام واجهة برمجة التطبيقات المذكورة أعلاه. https://products.groupdocs.app/metadata/jpeg

خاتمة

في هذه المقالة ، تعلمت كيفية إضافة البيانات الوصفية وتحريرها وإزالتها واستخراجها من الصور الموجودة على السحابة. توضح هذه المقالة أيضًا كيفية تحميل ملف صورة JPEG برمجيًا على السحابة وتنزيله من السحابة. يمكنك معرفة المزيد حول GroupDocs.Metadata Manipulation Cloud API باستخدام التوثيق. نقدم أيضًا قسم مرجع واجهة برمجة التطبيقات الذي يتيح لك تصور واجهات برمجة التطبيقات الخاصة بنا والتفاعل معها مباشرةً من خلال المتصفح. في حالة وجود أي غموض ، فلا تتردد في الاتصال بنا على المنتدى.

أنظر أيضا