1. Termékek
  2.   Kép
  3.   .NET
  4.   ImageSharp  

ImageSharp  

 
 

Nyílt forráskódú C# .NET Library for 2D Graphics

PNG, JPEG, GIF és TIFF képek olvasása, írása, módosítása, átméretezése és konvertálása .NET API használatával.

Az ImageSharp egy egyszerű, de nagyon hatékony, többplatformos nyílt forráskódú könyvtár a C# alkalmazásokon belüli képfájlok feldolgozásához. Ez egy teljesen felügyelt és többplatformos 2D grafikus API, amely lehetővé teszi a képek feldolgozását. Az ImageSharp egy nyílt forráskódú képfeldolgozó könyvtár, amelyet azzal a céllal adtak ki, hogy alternatívát nyújtson a System.Drawing API-kkal szemben.

Ez az API átfogó, és támogatja a fejlett képfeldolgozási algoritmusokat. Az API-t évről évre fejlesztik, hogy támogatást nyújtson a fejlettebb képfeldolgozáshoz. Az egyetlen függősége maga a .NET, ami rendkívül hordozhatóvá teszi. Az API olyan fejlett funkciókat támogat, mint a képméret átméretezése, a képkódolás és dekódolás, csak a kép metaadatainak dekódolása, a képklónozás, a vízjel rajzolása a képre, a szöveg rajzolása útvonal mentén és még sok más.

Previous Next

Az ImageSharp első lépései

Stabil kiadás áll rendelkezésre a NuGet webhelyen A bétaverziók esetében győződjön meg arról, hogy az Előkiadás hozzáadása kapcsoló engedélyezve van. A fejlesztési kiadások a MyGet-en keresztül érhetők el.

Telepítse az ImageSharp programot a NuGet segítségével

Install-Package SixLabors.ImageSharp -Version number 

C# API a képek átméretezéséhez

Az ImageSharp könyvtár lehetővé teszi a C# .NET programozók számára, hogy átméretezzék a képeket saját .NET-alkalmazásaikon belül. Egy kép átméretezése megköveteli a célkép képpontjainak generálását és iterációját, valamint a forráskép területeinek mintavételezését, hogy kiválassza, milyen színt alkalmazzon az egyes pixelekhez. Könnyedén beállíthatja az algoritmust a képek feldolgozásakor, például Bicubic, Hermite, Box, CatmullRom, Lanczos2 stb. Az alapvető átméretezési műveleteken kívül az ImageSharp fejlettebb funkciókat is kínál.

Képek átméretezése C# API-n keresztül

// Load File 
using (Image image = Image.Load("fileformat.jpg"))
{
  // Resize file 
  image.Mutate(x => x
      .Resize(image.Width / 2, image.Height / 2)
      .greyscale());
  // Save
  image.Save("fileformat_out.jpg");
}                
                  

Rajzolj vízjelet a képre

Általában az emberek úgy védik képeiket, hogy nagy vízjelet helyeznek rá, hogy megakadályozzák, hogy az emberek engedély nélkül használják a képeket. Az ImageSharp könyvtár támogatja a vízjelek hozzáadását a képekhez a C++ alkalmazásokon belül. A kezdéshez szükség van egy betűtípuscsaládra, amelyet könnyen beszerezhet a rendszer betűkészlet-áruházából. Rajzolja a szöveget a képre, és szürkítse 50%-os átlátszatlansággal.

Rajzoljon szöveget egy útvonal mentén, és alkalmazzon effektust a képre

Az ImageSharp könyvtár lehetővé teszi a C# .NET fejlesztők számára, hogy szöveget rajzoljanak egy útvonal körvonalait követve. Javasoljuk, hogy hozzon létre egy betűkészletet. Először is generáljuk a szöveget az útvonal mentén rajzolt vektorok halmazaként. Miután megrajzoltuk az útvonalat, hogy lássuk, mit kell követnie a szövegnek. Az ImageSharp API azt is lehetővé teszi, hogy különféle effektusokat alkalmazzon a képekre, amelyek csak egy alakzaton belül vannak.

Hatás alkalmazása a képekre


namespace CustomImageProcessor
{
    static class Program
    {
        static void Main(string[] args)
        {
            System.IO.Directory.CreateDirectory("output");
            using (Image image = Image.Load("fb.jpg"))
            {
                var outerRadii = Math.Min(image.Width, image.Height) / 2;
                var star = new Star(new PointF(image.Width / 2, image.Height / 2), 5, outerRadii / 2, outerRadii);
                using (var clone = image.Clone(p =>
                {
                    p.GaussianBlur(15); // apply the effect here you and inside the shape
                }))
                {
                    clone.Mutate(x => x.Crop((Rectangle)star.Bounds));
                    var brush = new ImageBrush(clone);
                    // cloned image with the effects applied
                    image.Mutate(c => c.Fill(brush, star));
                }
                image.Save("output/fb.png");
            }
        }
    }
}              
 Magyar