การค้นหารูปภาพย้อนกลับและการแก้ไขภาพที่เอียงโดยอัตโนมัติเป็นความท้าทายทั่วไปสำหรับนักพัฒนาที่สร้างฟีเจอร์การค้นหาภาพแบบภาพเห็น. Aspose.CAD Cloud SDK for .NET มีไลบรารีที่ทรงพลังซึ่งทำให้การค้นหารูปภาพย้อนกลับและการแก้ไขเอียงของภาพใน C# ง่ายขึ้น. ในคู่มือนี้คุณจะได้เห็นวิธีการแก้ไขเอียงของไฟล์ PNG, เรียกใช้ Bing Visual Search เพื่อการค้นหาย้อนกลับ, และรวมกระบวนการทั้งหมดด้วยโค้ดที่กระชับและตัวอย่าง cURL.
ก่อนเริ่มต้น: ข้อกำหนดเบื้องต้นและการติดตั้ง
เพื่อทำตามบทเรียนนี้คุณต้องมี:
- .NET 6.0 หรือใหม่กว่าและ IDE เช่น Visual Studio 2022.
- บัญชี Aspose Cloud พร้อมคีย์ API และ client secret.
- การเข้าถึง 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 reference.
ขั้นตอนที่ 3: ปรับแนวภาพให้ตรงโดยใช้ไลบรารี
สร้าง DeskewImageRequest ด้วยสตรีมภาพและเรียกใช้การดำเนินการ deskew.
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 อย่างเป็นทางการ.
สรุป
การทำ reverse image search และการ Deskew รูปภาพใน C# กลายเป็นเรื่องง่ายด้วย Aspose.CAD Cloud SDK for .NET. ไลบรารีจัดการการเตรียมรูปภาพล่วงหน้า, ในขณะที่ Bing Visual Search ให้ความสามารถในการค้นหาแบบย้อนกลับที่ทรงพลัง. โดยทำตามขั้นตอนข้างต้นคุณสามารถสร้าง pipeline การค้นหาแบบภาพที่แข็งแรงซึ่งแก้ไขอินพุตที่เอียงก่อนทำการค้นหา. จำไว้ว่าให้รับใบอนุญาตที่ถูกต้องสำหรับการใช้งานในผลิตภัณฑ์; รายละเอียดราคาอยู่ในหน้าผลิตภัณฑ์และคุณสามารถรับใบอนุญาตชั่วคราวจาก หน้าลิขสิทธิ์ชั่วคราว. ด้วยโค้ดและตัวอย่าง cURL ที่มีอยู่ คุณพร้อมที่จะผสานฟังก์ชันนี้เข้ากับแอปพลิเคชันของคุณแล้ว.
คำถามที่พบบ่อย
-
การค้นหารูปภาพย้อนกลับและการปรับแนวภาพ (Deskewing) ทำอะไรได้บ้างในแอปพลิเคชัน C#?
ช่วยให้คุณสามารถแก้ไขทิศทางของรูปภาพที่อัปโหลดโดยอัตโนมัติและจากนั้นค้นหารายการที่มีลักษณะคล้ายกันโดยใช้บริการค้นหาภายนอก ซึ่งช่วยปรับปรุงประสบการณ์ผู้ใช้และความแม่นยำของการค้นหา -
ฉันสามารถใช้ไลบรารีกับรูปแบบภาพอื่นนอกจาก PNG ได้หรือไม่?
ใช่, ไลบรารีรองรับรูปแบบเรสเตอร์ทั่วไปเช่น JPG และ BMP. เพียงเปลี่ยนนามสกุลไฟล์ในโค้ด. -
ฉันต้องโฮสต์บริการใด ๆ เพื่อรันโค้ดนี้หรือไม่?
ไม่, Aspose.CAD Cloud SDK for .NET เป็นไลบรารีแบบคลาวด์ ดังนั้นการประมวลผลทั้งหมดจะเกิดขึ้นบนเซิร์ฟเวอร์ของ Aspose คุณเพียงแค่ต้องมีการเชื่อมต่ออินเทอร์เน็ตและข้อมูลประจำตัวที่ถูกต้อง -
ฉันจะจัดการกับชุดภาพขนาดใหญ่อย่างมีประสิทธิภาพได้อย่างไร?
ประมวลผลภาพแบบอะซิงโครนัส, แคชผลลัพธ์ที่ทำการแก้ไขการเอียง, และใช้โทเค็นการเข้าถึงเดียวกันสำหรับหลายการเรียก API. สิ่งนี้ช่วยลดความหน่วงและภาระของ API.