C#'ta SVG Renk Matrisi kullanarak Doygunluk Efekti

İnternetteki bazı resimlerin çok parlak göründüğünü veya renklerin tam olarak doğru olmadığını hiç fark ettiniz mi? Bunun nedeni, doygunluk etkisi adı verilen bir olgudur. Bu yazıda, C# dilinde bir SVG renk matrisi ile doygunluk efektinin nasıl elde edileceğini öğreneceğiz.

Öncelikle doygunluk efektini öğreneceğiz ve SVG renk matrisi filtresini uygulamak için C# SVG API’sine göz atacağız. Ardından, bir görüntüdeki renkleri ayarlamak için renk matrisini kullanarak doygunluk efektinin nasıl düzeltileceğini adım adım inceleyeceğiz. Son olarak, daha fazla geliştirme için yararlı bağlantılar sağlayacağız. Öyleyse başlayalım!

Bu makale aşağıdaki konuları kapsayacaktır:

  1. Doygunluk Efekti ve SVG Renk Matrisi nedir
  2. Renk Matrisi kullanan Doygunluk Efekti için C# SVG API
  3. Doygunluk Efekti için SVG Renk Matrisi Nasıl Kullanılır
  4. C#’ta Renk Matrisini kullanarak Doygunluk Efekti Oluşturun

Doygunluk Etkisi ve SVG Renk Matrisi nedir?

Doygunluk efekti, bir görüntünün daha canlı görünmesini sağlamak için kullanılan yaygın bir görüntü işleme tekniğidir. Rengin yoğunluğunu anlatır.

Doygunluk etkisi, beynimizin rengi işleme şeklinden kaynaklanır. Bir görüntü gördüğümüzde, beynimiz daha doğal görünmesi için renkleri otomatik olarak ayarlar. Bununla birlikte, bir görüntü çok fazla renge sahip olduğunda veya renkler eşit şekilde dengelenmediğinde, beynimiz görüntüyü işlemekte zorlanır ve bu da doygunluk etkisine neden olabilir.

Doygunluk efektini SVG filtre öğesini kullanarak elde edebiliriz. Bir dönüşüm matrisine dayalı olarak renkleri değiştirmek için renk dönüşümleri için bir filtre sağlar.

Renk Matrisi kullanan Doygunluk Efekti için C# SVG API’si

Doygunluk efekti, renk matrisinin kullanılmasının özel bir durumudur. filtre ilkelinin doygunluk işlemini kullanmak için Aspose.SVG for .NET API’sini kullanacağız. API, herhangi bir yazılım bağımlılığı olmadan SVG dosyalarının yüklenmesine, ayrıştırılmasına, işlenmesine, oluşturulmasına ve popüler biçimlere dönüştürülmesine olanak tanır.

Lütfen API’nin DLL’sini indirin veya NuGet kullanarak kurun.

PM> Install-Package Aspose.SVG

Doygunluk Efekti için SVG Renk Matrisi Nasıl Kullanılır

, giriş görüntüsündeki her pikselin RGBA kanallarına bir matris dönüşümü uygular. Doygunluk efekti için SVG elementini aşağıda verilen adımları takip ederek kullanabiliriz:

  1. Bir SVG belgesi tanımlayın ve SVG ad alanı URL’sini ayarlayın.
  2. Bir görüntü öğesi ve bir filtre öğesi oluşturun.
  3. Grafik öğesini ekleyin.
  4. Bir feColorMatrix öğesi oluşturun ve bunu filtre öğesine ekleyin.
  5. Çıkış SVG görüntüsünü kaydedin.

Aşağıdaki bölümde, bu adımların C# koduna nasıl dönüştürüleceği ve SVG’de bir doyum efektinin nasıl oluşturulacağı açıklanmaktadır.

C#’ta Renk Matrisi kullanarak Doygunluk Efekti Oluşturma

Aşağıda verilen adımları izleyerek öğesini kullanarak bir doygunluk efekti oluşturabiliriz:

  1. İlk olarak, SVGDocument sınıfının bir örneğini oluşturun.
  2. Ardından, kök SVG öğesine erişin ve SVG için ad alanı URL’sini belirtin.
  3. Ardından, SVGImageElement sınıf nesnesini başlatın.
  4. Bu arada, SVGImageElement için bir görüntü yolu ve diğer özellikleri ayarlayın.
  5. Ardından, SVGDefsElement sınıf nesnesini tanımlayın ve onu kök öğeye ekleyin.
  6. Ardından, SVGFilterElement sınıf nesnesini oluşturun ve onu SVGDefsElement’e ekleyin.
  7. Ardından, SVGFEColorMatrixElement sınıf nesnesini tanımlayın.
  8. Ardından, gerekli öznitelikleri ig tipini ayarlayın: doygun
  9. Bundan sonra, SVGFEColorMatrixElement öğesini SVGFilterElement öğesine ekleyin.
  10. Son olarak, çıktı SVG dosyasını Save() yöntemini kullanarak kaydedin.

Aşağıdaki kod örneği, C# dilinde renk matrisi ile doygunluk efektinin nasıl oluşturulacağını gösterir.

// Bu kod örneği, C# dilinde renk matrisi ile doygunluk efektinin nasıl oluşturulacağını gösterir.
// SVGDocument örneğini oluşturun
var document = new SVGDocument();

// Belgenin kök svg öğesini alın
var svgElement = document.RootElement;

const string SvgNamespace = "http://www.w3.org/2000/svg";

var imageElement = (SVGImageElement)document.CreateElementNS(SvgNamespace, "image");
imageElement.Href.BaseVal = @"C:\Files\lighthouse.jpg";
imageElement.Height.BaseVal.ConvertToSpecifiedUnits(SVGLength.SVG_LENGTHTYPE_PX);
imageElement.Width.BaseVal.ConvertToSpecifiedUnits(SVGLength.SVG_LENGTHTYPE_PX);
imageElement.Height.BaseVal.Value = 640;
imageElement.Width.BaseVal.Value = 480;
imageElement.X.BaseVal.Value = 20;
imageElement.Y.BaseVal.Value = 20;
imageElement.SetAttribute("filter", "url(#CM)");
svgElement.AppendChild(imageElement);

// Bir defs öğesi oluşturun ve svgElement öğesine ekleyin
Aspose.Svg.SVGDefsElement defsElement = (Aspose.Svg.SVGDefsElement)document.CreateElementNS(SvgNamespace, "defs");
svgElement.AppendChild(defsElement);

// Bir filtre öğesi oluşturun ve defsElement öğesine ekleyin
Aspose.Svg.SVGFilterElement filterElement = (Aspose.Svg.SVGFilterElement)document.CreateElementNS(SvgNamespace, "filter");
defsElement.AppendChild(filterElement);

// Bir feColorMatrix öğesi oluşturun
var feColorMatrixElement = (SVGFEColorMatrixElement)document.CreateElementNS(SvgNamespace, "feColorMatrix");
feColorMatrixElement.In1.BaseVal = "SourceGraphic";
feColorMatrixElement.SetAttribute("type", "saturate");
feColorMatrixElement.SetAttribute("values", "2");
filterElement.Id = "CM";

// Filtre Elemanına Ekle
filterElement.AppendChild(feColorMatrixElement);

// SVG belgesini kaydedin
document.Save("C:\\Files\\ColorEffect.svg");
Kaynak resim deniz feneri.jpg

Kaynak giriş görüntüsü

SVG Renk Matrisi kullanılarak Doygunluk Efekti

C#’ta SVG Renk Matrisi kullanarak Doygunluk Efekti

<svg xmlns="http://www.w3.org/2000/svg">
    <image href="file:///C:/Files/lighthouse.jpg" height="640" width="480" x="20" y="20" filter="url(#CM)"/>
    <defs>
        <filter id="CM">
            <feColorMatrix in="SourceGraphic" type="saturate" values="2"/>
        </filter>
    </defs>
</svg>

Ücretsiz API Lisansı Alın

Kitaplığı değerlendirme sınırlamaları olmaksızın denemek için ücretsiz bir geçici lisans alabilirsiniz.

Çözüm

Bu yazıda, görüntülerdeki doygunluk etkisini öğrendiniz. C#’ta SVG renk matrisi filtrelerini kullanarak doygunluk renk efektinin nasıl uygulanacağını da gördük. Ayrıca, belgelemeyi kullanarak Aspose.SVG for .NET hakkında daha fazla bilgi edinebilir ve API tarafından sunulan çeşitli özellikleri keşfedebilirsiniz. Herhangi bir belirsizlik durumunda lütfen ücretsiz destek forumumuzda bizimle iletişime geçmekten çekinmeyin.

Ayrıca bakınız