რევერსული სურათის ძებნა და დახრილი სურათების კორექტირება რეალურ დროში საერთო გამოწვევაა დეველოპერებისთვის, რომლებიც ვიზუალური ძებნის ფუნქციებს ქმნიან. Aspose.CAD Cloud SDK for .NET უზრუნველყოფს ძლიერი ბიბლიოთეკას, რომელიც მარტივად აერთიანებს რევერსული სურათის ძებნას და სურათის დესკიუირებას C#-ში. ამ გზამკვლევში ნახავთ, როგორ დესკიუიროთ PNG‑ის, როგორ გამოიძახოთ Bing Visual Search რევერსული ძიებისთვის, და როგორ ინტეგრიროთ მთელი სამუშაო ნაკადი მოკლე კოდით და cURL მაგალითებით.

დაწყებამდე: მოთხოვნები და ინსტალაცია

ამ გაკვეთილის შესასრულებლად თქვენ გჭირდებათ:

  • .NET 6.0 ან უფრო ახალი და IDE, როგორიცაა 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 Cloud Library-ის კონფიგურაცია

შექმენით კონფიგურაციის ობიექტი თქვენი 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# კოდში ნაჩვენებია, რაც საშუალებას გაძლევთ ინტეგრირება ფუნქციონალობის ნებისმიერი გარემოში, რომელიც შეუძლია შელის სკრიპტების შესრულება.

დამატებითი პარამეტრებისთვის და პასუხის ფორმატებისთვის იხილეთ ოფიციალური API დოკუმენტაცია.

დასკვნა

C#-ში რევერსული სურათის ძებნისა და სურათის დესქევის განხორციელება მარტივად ხდება Aspose.CAD Cloud SDK for .NET-ის გამოყენებით (Aspose.CAD Cloud SDK for .NET). ბიბლიოთეკა ასრულებს სურათის წინაპროცესირებას, ხოლო Bing Visual Search იძლევა ძლიერი რევერსული ძებნის შესაძლებლობას. ზემოაღნიშნული ნაბიჯების მიყოლებით შეგიძლიათ შექმნათ ძლიერი ვიზუალური ძებნის პაიპლაინი, რომელიც სწორებს გადახრილ შეყვანებს მოთხოვნის წინ. დაიმახსოვრეთ, რომ წარმოებაში გამოყენებისთვის მიიღოთ მოქმედ ლიცენზია; ფასის დეტალები ხელმისაწვდომია პროდუქტის გვერდზე, ხოლო დროებითი ლიცენზია შეგიძლიათ მიიღოთ დროებითი ლიცენზიის გვერდიდან (temporary license page). კოდის და cURL მაგალითებთან ერთად, მზად ხართ ინტეგრირებისთვის თქვენს აპლიკაციებში.

ხშირად დასმული კითხვები

  • რა მიზანს სარგებლობს უკანა სურათის ძიება და სურათის დესქეივინგი C# აპლიკაციაში?
    ეს საშუალებას გაძლევთ ავტომატურად შეასწოროთ ატვირთული სურათების ორიენტაცია, შემდეგ კი იპოვოთ ვიზუალურად მსგავსი ელემენტები გარე ძიების სერვისის საშუალებით, რაც გაუმჯობესებს მომხმარებლის გამოცდილებას და ძიების სიზუსტეს.

  • შეიძლება ბიბლიოთეკის გამოყენება სხვა გამოსახულების ფორმატებით, გარდა PNG-ის?
    დიახ, ბიბლიოთეკა მხარდაჭერას აძლევს საერთო რასტრი ფორმატებს, როგორიცაა JPG და BMP. უბრალოდ შეცვალეთ ფაილის გაფართოება კოდში.

  • მჭირდება რაიმე სერვისის ჰოსტინგი, რომ გავუშვა ეს კოდი?
    არა, Aspose.CAD Cloud SDK for .NET არის ღრუბლოვანი ბიბლიოთეკა, ამიტომ ყველა დამუშავება ხდება Aspose-ის სერვერებზე. თქვენ მხოლოდ ინტერნეტ კავშირი და მოქმედი ავტორიზაციის დეტალები გჭირდებათ.

  • როგორ შეიძლება ეფექტურად მართვა დიდი რაოდენობის სურათის ბაჩები?
    პროცესირეთ სურათები ასინქრონულად, კეშირეთ დესქიზე გადაყვანის შედეგები, და გამოიყენეთ იგივე დაშვების ტოკენი მრავალ API გამოძახებისთვის. ეს შემცირებს ლატენციას და API გადატვირთვას.

მეტი