En el món de les arts digitals i les fotografies, es poden crear efectes de la fantasia i de l’art de la nova vida en les imatges velles o planes. Aspose.La fantasia ofereix a .NET un fort conjunt d’eines per aconseguir-ho, que permet als desenvolupadors aplicar diferents tecnologies per a la processament d’imatges com el so de Sibi, la ruptura, la ruptura i molts altres.

Exemple complet

Per començar, deixem-nos enfonsar en un exemple complet, que mostra com aplicar molts efectes a la imatge en una i la mateixa отиде.Aquesta secció us passarà a través de tot el procés de descàrrega de la imatge, per proporcionar-lo amb els efectes necessaris aplicació.

// File: Program.cs
// NuGet: Aspose.Imaging

using System;
using System.IO;
using Aspose.Imaging;
using Aspose.Imaging.ImageOptions;
using Aspose.Imaging.ImageFilters.FilterOptions;

namespace ArtisticEffectsDemo
{
    public static class Program
    {
        public static void Main(string[] args)
        {
            // Input and output
            var input  = args.Length > 0 ? args[0] : "input.jpg";
            var outDir = args.Length > 1 ? args[1] : "out";

            Directory.CreateDirectory(outDir);

            // Optional: enable disk cache for large images/batches
            // Aspose.Imaging.Cache.CacheType   = Aspose.Imaging.Cache.CacheType.CacheOnDisk;
            // Aspose.Imaging.Cache.CacheFolder = Path.GetFullPath(".imaging-cache");
            // Aspose.Imaging.Cache.CacheSize   = 512L * 1024 * 1024; // 512 MB

            // 1) Sepia (pixel-based)
            using (var img = Image.Load(input))
            {
                var raster = img as RasterImage
                    ?? throw new InvalidOperationException("Not a raster image.");

                ApplySepiaInPlace(raster);
                raster.Save(Path.Combine(outDir, "sepia.png"), new PngOptions());
            }

            // 2) Gaussian blur (kernel filter)
            using (var img = Image.Load(input))
            {
                var raster = img as RasterImage
                    ?? throw new InvalidOperationException("Not a raster image.");

                // Kernel size must be an odd positive value. Sigma controls smoothing strength.
                var blur = new GaussianBlurFilterOptions(size: 5, sigma: 3.0);
                raster.Filter(raster.Bounds, blur);

                raster.Save(Path.Combine(outDir, "blur.png"), new PngOptions());
            }

            // 3) Emboss (convolution filter with custom kernel)
            using (var img = Image.Load(input))
            {
                var raster = img as RasterImage
                    ?? throw new InvalidOperationException("Not a raster image.");

                // A classic 3x3 emboss kernel that simulates light from top-left
                var kernel = new double[,]
                {
                    { -2, -1,  0 },
                    { -1,  1,  1 },
                    {  0,  1,  2 }
                };

                var emboss = new ConvolutionFilterOptions(kernel);
                raster.Filter(raster.Bounds, emboss);

                raster.Save(Path.Combine(outDir, "emboss.png"), new PngOptions());
            }

            Console.WriteLine("Effects created in: " + Path.GetFullPath(outDir));
        }

        /// <summary>
        /// In-place sepia conversion using standard coefficients.
        /// Works on the image pixel buffer for maximum control.
        /// </summary>
        private static void ApplySepiaInPlace(RasterImage raster)
        {
            // Load all pixels in one go
            var rect   = raster.Bounds;
            var pixels = raster.LoadPixels(rect);

            for (int i = 0; i < pixels.Length; i++)
            {
                var c = pixels[i];

                // Standard sepia transform (clamped to 0..255)
                double r = c.R;
                double g = c.G;
                double b = c.B;

                int tr = ClampToByte(0.393 * r + 0.769 * g + 0.189 * b);
                int tg = ClampToByte(0.349 * r + 0.686 * g + 0.168 * b);
                int tb = ClampToByte(0.272 * r + 0.534 * g + 0.131 * b);

                pixels[i] = Color.FromArgb(c.A, tr, tg, tb);
            }

            // Save pixels back
            raster.SavePixels(rect, pixels);
        }

        private static int ClampToByte(double x)
        {
            if (x < 0) return 0;
            if (x > 255) return 255;
            return (int)Math.Round(x);
        }
    }
}

Pas per pas la prova

Primer pas: descarregar les fotos

El primer és descarregar la imatge que voleu editar. Aspose.Presenta la fantasia de manera senzilla per a això:

Image image = Image.Load("path/to/your/image.jpg");

Pas 2: Utilitza l’efecte de la to Sepia

El to de Sepia dóna a les imatges una vella aparició, esmentant les imatges del començament del segle XX::.:

// Apply Sepia Tone Effect
using (Image image = Image.Load("path/to/your/image.jpg"))
{
    image.Filter(new SepiaFilter());
}

Pas 3: Afegir text

Afegeix un teixit de tres dimensions al teu rostre, que els fa semblar que estan estirats o aixecats de la superfície::.:

// Apply sepia tone effect to the image
using (SepiaFilter sepia = new SepiaFilter())
{
    sepia.Apply(image);
}

Pas 4: Esmorzar la foto per la bondat

Pot calmar les extremitats de la imatge i reduir el soroll, que li dóna una aparença somniant.Aquí és com aplicar soroll de gas amb l’ajuda de Aspose.:

// Apply embossing effect to create a textured appearance
using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load("path/to/image.jpg"))
{
    Aspose.Imaging.Filters.FilterInfo embossFilter = new Aspose.Imaging.ImageFilters.FilterInfo(Aspose.Imaging.ImageFilters.FilterType.Emboss);
    image.Filter(embossFilter);
}

Quinquè pas: Conservar la imatge modificada

Després d’aplicar tots els efectes necessaris, guardar la imatge modificada en el disc o en qualsevol lloc per a l’emmagatzematge de la vostra elecció:

image.Save("path/to/save/modified_image.jpg", new JpegOptions());

Les millors pràctiques

Quan treballes amb els efectes de la imatge en .NET, és important tenir en compte els efectes de la realització, per aplicar molts efectes.Cada efecte pot ser una font intensa, de manera que és bo que provi amb cura i millori la seva aplicació, quan sigui necessari.

A més, l’experiència amb diversos conjunt d’efectes pot portar a resultats únics i creatius.No dubteu a explorar fora de l’exemple presentat aquí i descobrir noves maneres de millorar les vostres fotografies.

A través de seguir aquest guia, ha de tenir una base forta per crear efectes fantàstics i tècnics sobre les imatges amb l’ajuda de Aspose.Imaging per .NET.!

More in this category