Dijital sanat ve fotoğraf dünyasında, vintage ve sanatsal efektler yaratmak eski veya düz görüntülerde yeni bir yaşam nefes alabilir. Aspose.Imaging için .NET bunu gerçekleştirmek için güçlü bir araç seti sunar, geliştiricilerin sepia tonları, emme, blurring ve daha fazlası gibi çeşitli görüntü işleme teknikleri uygulamasını sağlar. Bu makale, bu efektleri kullanarak uygulama sürecini yönlendirecektir.

Tam örnek

Başlamak için, bir adımda bir görüntüye birden fazla etkiyi nasıl uygulayacağınızı gösteren tam bir örnek içine dalalım. bu bölüm, görüntüyü yüklemekten uygulanan istenen etkilerle kurtarmak için tüm süreci geçecektir.

// 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);
        }
    }
}

adım adım rehber

Adım 1: Görüntüyü yükleme

İlk adım, değiştirmek istediğiniz görüntüyü yüklemektir. Aspose.Imaging bunun için basit bir yöntem sunar:

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

Adım 2: Sepia ton etkisi uygulayın

Sepia tonu, resimlere eski moda bir görünüm verir, 20. yüzyılın başından gelen fotoğrafları hatırlatır.

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

Adım 3: Yazı için Embossing ekleyin

Embossing, resminize üç boyutlu bir dokunuş eklenir, sanki yüzeyden çizilmiş veya yükseltilmiş gibi görünür.

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

Adım 4: Yumuşaklık için resim yapıştırın

Bir görüntü yumuşatmak kenarlarını hafifletebilir ve gürültüyü azaltabilir, rüya görünüyor. İşte Aspose.Imaging kullanarak bir Gaussian blur nasıl uygulanır:

// 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);
}

Adım 5: Değiştirilmiş görüntü kaydetmek

Tüm istenen efektleri uyguladıktan sonra, değiştirilmiş görüntüyi diskinize veya seçtiğiniz herhangi bir depolama konumuna kaydedin:

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

En İyi Uygulamalar

Aspose.Imaging .NET’te görüntü efektleri ile çalışırken, çoklu efektlerin uygulanmasının performans etkilerini göz önünde bulundurmak önemlidir. her efekt kaynak yoğunluğundadır, bu nedenle uygulamanızı derinlemesine test etmek ve gerektiğinde optimize etmek iyi bir fikirdir.

Buna ek olarak, farklı efekt kombinasyonları ile deney yapmak benzersiz ve yaratıcı sonuçlara yol açabilir. burada sunulan örneklerin ötesinde keşfetmekten çekinmeyin ve görüntülerinizi geliştirmek için yeni yollar bulabilirsiniz.

Bu kılavuzu takip ederek, şimdi Aspose.Imaging ile resimlerde vintage ve sanatsal efektler yaratmak için sağlam bir temele sahip olmalısınız.

More in this category