C# (.NET) में इमेज के साथ काम करना: लाइब्रेरीज़ का अवलोकन और व्यावहारिक उदाहरण
इमेज प्रोसेसिंग आधुनिक वेब एप्लिकेशन, डेस्कटॉप प्रोग्राम और मोबाइल सेवाओं को बनाने में एक प्रमुख कार्य है। C# (.NET) इकोसिस्टम में कई शक्तिशाली लाइब्रेरीज़ मौजूद हैं, जो इमेज को लोड करने, संपादित करने, विश्लेषण करने और सेव करने की अनुमति देती हैं। इस लेख में हम मुख्य दृष्टिकोणों पर चर्चा करेंगे: क्लासिक System.Drawing से लेकर आधुनिक क्रॉस-प्लेटफ़ॉर्म समाधान ImageSharp और SkiaSharp तक।
1. System.Drawing.Common — .NET की क्लासिक लाइब्रेरी
System.Drawing.Common लाइब्रेरी .NET Core/.NET 5+ में NuGet पैकेज के रूप में उपलब्ध है। यह रास्टर इमेज (BMP, JPEG, PNG, GIF, TIFF) के साथ काम करने के लिए एक परिचित API प्रदान करती है।
महत्वपूर्ण: Linux और macOS पर इसे libgdiplus लाइब्रेरी की स्थापना की आवश्यकता होती है।
स्थापना
dotnet add package System.Drawing.Commonउदाहरण: लोड करना, आकार बदलना और सेव करना
using System.Drawing;using System.Drawing.Drawing2D;using System.Drawing.Imaging;
public class ImageProcessor{ public void ResizeImage(string inputPath, string outputPath, int maxWidth, int maxHeight) { using var original = Image.FromFile(inputPath); var ratio = Math.Min((double)maxWidth / original.Width, (double)maxHeight / original.Height); int newWidth = (int)(original.Width * ratio); int newHeight = (int)(original.Height * ratio);
using var bitmap = new Bitmap(newWidth, newHeight); using var graphics = Graphics.FromImage(bitmap); graphics.InterpolationMode = InterpolationMode.HighQualityBicubic; graphics.DrawImage(original, 0, 0, newWidth, newHeight);
bitmap.Save(outputPath, ImageFormat.Jpeg); }}2. ImageSharp (SixLabors) — आधुनिक क्रॉस-प्लेटफ़ॉर्म लाइब्रेरी
SixLabors.ImageSharp एक शुद्ध प्रबंधित लाइब्रेरी है जो नेटिव घटकों पर निर्भर नहीं है। यह सर्वर एप्लिकेशन, वेब सेवाओं और क्लाउड फ़ंक्शन के लिए आदर्श है। यह उन्नत फ़ॉर्मेट (WebP, HEIF, AVIF) और उन्नत प्रोसेसिंग का समर्थन करती है।
स्थापना
dotnet add package SixLabors.ImageSharpउदाहरण: वॉटरमार्क लगाना
using SixLabors.ImageSharp;using SixLabors.ImageSharp.Drawing.Processing;using SixLabors.ImageSharp.Processing;using SixLabors.Fonts;
public async Task AddWatermarkAsync(string inputPath, string outputPath, string watermarkText){ using var image = await Image.LoadAsync(inputPath); var font = SystemFonts.CreateFont("Arial", 48, FontStyle.Bold);
image.Mutate(ctx => { ctx.DrawText(watermarkText, font, Color.White, new PointF(50, 50)); });
await image.SaveAsync(outputPath);}3. SkiaSharp — Google का ग्राफ़िक्स इंजन
SkiaSharp Skia लाइब्रेरी (Chrome, Flutter, Android में उपयोग) का एक रैपर है। यह उच्च प्रदर्शन, पिक्सेल तक निम्न-स्तरीय पहुंच और जटिल वेक्टर रूपांतरणों का समर्थन प्रदान करता है।
स्थापना
dotnet add package SkiaSharpउदाहरण: ब्लर (धुंधला) फ़िल्टर लगाना
using SkiaSharp;
public void ApplyBlur(string inputPath, string outputPath, float sigma){ using var inputStream = File.OpenRead(inputPath); using var original = SKBitmap.Decode(inputStream); using var surface = new SKCanvas(original);
var paint = new SKPaint { ImageFilter = SKImageFilter.CreateBlur(sigma, sigma) }; surface.DrawBitmap(original, 0, 0, paint);
using var image = SKImage.FromBitmap(original); using var data = image.Encode(SKEncodedImageFormat.Jpeg, 90); using var outputStream = File.OpenWrite(outputPath); data.SaveTo(outputStream);\ पुस्तकालय में भी
Day.js और Moment.js: JavaScript (Node.js) में दिनांक प्रबंधन का संपूर्ण गाइड
Kotlin में XML के साथ कार्य: लाइब्रेरीज़, पार्सिंग और दस्तावेज़ निर्माण
GraphQL लाइब्रेरी JavaScript (Node.js) — पूर्ण गाइड
Go में डेटाबेस माइग्रेशन: उपकरणों और प्रथाओं का अवलोकन
Laravel Framework PHP: पूर्ण गाइड, उदाहरण और ट्यूटोरियल