البحث العكسي عن الصور وتصحيح الصور المائلة في الوقت الفعلي هو تحدٍ شائع للمطورين الذين يبنون ميزات البحث البصري. Aspose.CAD Cloud SDK for .NET توفر مكتبة قوية تُبسّط كل من البحث العكسي عن الصور وتعديل الميل في الصور باستخدام C#. في هذا الدليل ستتعرف على كيفية تعديل ميل صورة PNG، واستدعاء Bing Visual Search للبحث العكسي، ودمج سير العمل بالكامل باستخدام كود مختصر وأمثلة cURL.
قبل أن تبدأ: المتطلبات والتثبيت
لمتابعة هذا البرنامج التعليمي تحتاج إلى:
- .NET 6.0 أو أحدث وبيئة تطوير متكاملة مثل Visual Studio 2022.
- حساب Aspose Cloud مع مفتاح API والسر العميل.
- الوصول إلى Bing Visual Search API (مطلوب مفتاح الاشتراك).
- ملف الصورة الإدخالي (
input.png) موجود في مجلد المشروع.
قم بتثبيت المكتبة عبر NuGet:
dotnet add package Aspose.cad-Cloud
قم بتنزيل أحدث حزمة من صفحة التنزيل. بعد التثبيت، يمكنك بدء كتابة سير العمل.
بناءه خطوة بخطوة: البحث العكسي عن الصور وتصحيح إمالة الصورة في .NET
يتم تقسيم التنفيذ إلى خمس خطوات منطقية. كل خطوة تُظهر فقط الشيفرة ذات الصلة المستخرجة من المثال الكامل.
الخطوة 1: تحميل الصورة المصدر
قم بقراءة ملف PNG إلى مصفوفة بايت وإنشاء تدفق ذاكرة يمكن للمكتبة استهلاكه.
string inputImagePath = "input.png";
byte[] inputBytes = File.ReadAllBytes(inputImagePath);
using var inputStream = new MemoryStream(inputBytes);
الخطوة 2: تكوين مكتبة Aspose.CAD السحابية
أنشئ كائن تكوين باستخدام مفتاح API الخاص بك وعنوان URL الأساسي، ثم قم بإنشاء مثيل لـ ImageApi.
var config = new Configuration
{
ApiKey = "YOUR_ASPOSE_CAD_CLOUD_API_KEY",
BasePath = "https://api.aspose.cloud"
};
var imageApi = new ImageApi(config);
لمزيد من التفاصيل، انظر إلى مرجع API.
الخطوة 3: تصحيح انحراف الصورة باستخدام المكتبة
قم بإنشاء DeskewImageRequest باستخدام تدفق الصورة واستدعِ عملية تصحيح الميل.
var deskewRequest = new DeskewImageRequest
{
ImageData = inputStream
// Optional: Angle, BackgroundColor can be set here
};
byte[] deskewedBytes = await imageApi.PostImageDeskewAsync(deskewRequest);
الخطوة 4: حفظ الصورة المصححة
اكتب مصفوفة البايتات المعادة إلى ملف جديد.
string deskewedImagePath = "deskewed.png";
File.WriteAllBytes(deskewedImagePath, deskewedBytes);
Console.WriteLine($"Deskewed image saved to {deskewedImagePath}");
الخطوة 5: إجراء بحث عكسي عن الصور عبر Bing Visual Search API
إنشاء HttpClient، وإضافة رأس مفتاح الاشتراك، وإرسال الصورة الأصلية إلى Bing.
string bingSubscriptionKey = "YOUR_BING_VISUAL_SEARCH_SUBSCRIPTION_KEY";
string bingEndpoint = "https://api.bing.microsoft.com/v7.0/images/visualsearch";
using var httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", bingSubscriptionKey);
using var multipartContent = new MultipartFormDataContent();
var imageContent = new ByteArrayContent(inputBytes);
imageContent.Headers.ContentType = MediaTypeHeaderValue.Parse("application/octet-stream");
multipartContent.Add(imageContent, "image", Path.GetFileName(inputImagePath));
HttpResponseMessage response = await httpClient.PostAsync(bingEndpoint, multipartContent);
string jsonResult = await response.Content.ReadAsStringAsync();
Console.WriteLine("Reverse Image Search Result:");
Console.WriteLine(jsonResult);
مع هذه الخطوات لديك سير عمل كامل للبحث العكسي عن الصور وتصحيح ميل الصورة في C#.
مثال كامل يعمل للبحث العكسي عن الصور وتصحيح الميل للصور
يوضح المثال أدناه كيفية دمج جميع الأجزاء في تطبيق وحدة تحكم واحد.
using System;
using System.IO;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;
using Aspose.CAD.Cloud.Sdk.Api;
using Aspose.CAD.Cloud.Sdk.Client;
using Aspose.CAD.Cloud.Sdk.Model;
namespace ReverseImageSearchDeskew
{
class Program
{
static async Task Main(string[] args)
{
// Aspose.CAD Cloud configuration
var config = new Configuration
{
ApiKey = "YOUR_ASPOSE_CAD_CLOUD_API_KEY",
BasePath = "https://api.aspose.cloud"
};
var imageApi = new ImageApi(config);
// File paths
string inputImagePath = "input.png";
string deskewedImagePath = "deskewed.png";
// Load input image
byte[] inputBytes = File.ReadAllBytes(inputImagePath);
using var inputStream = new MemoryStream(inputBytes);
// Deskew the image using Aspose.CAD Cloud
var deskewRequest = new DeskewImageRequest
{
ImageData = inputStream
// Additional optional parameters (e.g., Angle, BackgroundColor) can be set here
};
byte[] deskewedBytes = await imageApi.PostImageDeskewAsync(deskewRequest);
File.WriteAllBytes(deskewedImagePath, deskewedBytes);
Console.WriteLine($"Deskewed image saved to {deskewedImagePath}");
// Reverse image search using Bing Visual Search API
string bingSubscriptionKey = "YOUR_BING_VISUAL_SEARCH_SUBSCRIPTION_KEY";
string bingEndpoint = "https://api.bing.microsoft.com/v7.0/images/visualsearch";
using var httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", bingSubscriptionKey);
using var multipartContent = new MultipartFormDataContent();
var imageContent = new ByteArrayContent(inputBytes);
imageContent.Headers.ContentType = MediaTypeHeaderValue.Parse("application/octet-stream");
multipartContent.Add(imageContent, "image", Path.GetFileName(inputImagePath));
HttpResponseMessage response = await httpClient.PostAsync(bingEndpoint, multipartContent);
string jsonResult = await response.Content.ReadAsStringAsync();
Console.WriteLine("Reverse Image Search Result:");
Console.WriteLine(jsonResult);
}
}
// Request model for deskew operation (matches Aspose.CAD Cloud SDK expectations)
public class DeskewImageRequest
{
public Stream ImageData { get; set; }
// Optional: public double? Angle { get; set; }
// Optional: public string BackgroundColor { get; set; }
}
}
ملاحظة: يوضح مثال الشيفرة هذا الوظيفة الأساسية. قبل استخدامه في مشروعك، تأكد من تحديث أي مسارات ملفات وقيم التكوين لتتناسب مع بيئتك الفعلية، وتحقق من تثبيت جميع الاعتمادات المطلوبة بشكل صحيح، واختبر بدقة في بيئة التطوير الخاصة بك. إذا واجهت أي مشكلات، يرجى الرجوع إلى الوثائق الرسمية أو التواصل مع فريق الدعم للحصول على المساعدة.
تنفيذ نفس العمليات عبر REST API باستخدام cURL
إذا كنت تفضل نهج REST النقي، يمكن تنفيذ سير العمل نفسه باستخدام أوامر cURL.
1. المصادقة والحصول على رمز الوصول
curl -X POST "https://api.aspose.cloud/connect/token" \
-d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
2. تحميل ملف PNG المصدر وطلب إزالة الميل
curl -X PUT "https://api.aspose.cloud/v3.0/cad/deskew" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/octet-stream" \
--data-binary @input.png \
-o deskewed.png
3. استدعاء Bing Visual Search للبحث العكسي عن الصور
curl -X POST "https://api.bing.microsoft.com/v7.0/images/visualsearch" \
-H "Ocp-Apim-Subscription-Key: YOUR_BING_VISUAL_SEARCH_SUBSCRIPTION_KEY" \
-F "image=@input.png;type=application/octet-stream"
تقوم هذه الأوامر بأداء الخطوات المتطابقة المعروضة في كود C#، مما يتيح لك دمج الوظيفة في أي بيئة يمكنها تنفيذ سكريبتات الشل.
لمزيد من المعلمات وتنسيقات الاستجابة، راجع الوثائق الرسمية لواجهة برمجة التطبيقات.
الخلاصة
تنفيذ البحث العكسي عن الصور وتصحيح إمالة الصورة في C# يصبح بسيطًا مع Aspose.CAD Cloud SDK for .NET. تتولى المكتبة معالجة ما قبل الصورة، بينما توفر Bing Visual Search قدرات قوية للبحث العكسي. باتباع الخطوات المذكورة أعلاه يمكنك بناء خط أنابيب بحث بصري قوي يصحح المدخلات المائلة قبل الاستعلام. تذكر أن تحصل على ترخيص صالح للاستخدام في الإنتاج؛ تفاصيل الأسعار متاحة على صفحة المنتج ويمكنك الحصول على ترخيص مؤقت من صفحة الترخيص المؤقت. مع وجود الكود وأمثلة cURL بين يديك، أنت جاهز لدمج هذه الوظيفة في تطبيقاتك.
الأسئلة المتكررة
-
ما الذي يحققه البحث العكسي عن الصور وتصحيح ميل الصورة في تطبيق C#؟
يتيح لك تصحيح اتجاه الصور المرفوعة تلقائيًا ثم العثور على عناصر مشابهة بصريًا باستخدام خدمة بحث خارجية، مما يحسن تجربة المستخدم ودقة البحث. -
هل يمكنني استخدام المكتبة مع صيغ صور أخرى غير PNG؟
نعم، تدعم المكتبة صيغ الصور النقطية الشائعة مثل JPG و BMP. فقط قم بتغيير امتداد الملف في الشيفرة. -
هل أحتاج إلى استضافة أي خدمات لتشغيل هذا الكود؟
لا، الـ Aspose.CAD Cloud SDK for .NET هو مكتبة قائمة على السحابة، لذا يتم تنفيذ جميع المعالجة على خوادم Aspose. تحتاج فقط إلى اتصال بالإنترنت واعتمادات صالحة. -
كيف يمكنني معالجة دفعات كبيرة من الصور بكفاءة؟
قم بمعالجة الصور بشكل غير متزامن، خزن نتائج تصحيح الميل في الذاكرة المؤقتة، وأعد استخدام رمز الوصول نفسه لعدة استدعاءات API. هذا يقلل من زمن الاستجابة وعبء API.