C#에서 SVG 색상 매트릭스를 사용한 채도 효과

인터넷의 일부 이미지가 너무 밝게 보이거나 색상이 정확하지 않은 것을 본 적이 있습니까? 이는 포화 효과라는 현상 때문입니다. 이 기사에서는 C#에서 SVG 색상 매트릭스를 사용하여 채도 효과를 얻는 방법을 배웁니다.

먼저 채도 효과에 대해 알아보고 SVG 컬러 매트릭스 필터를 적용하는 C# SVG API를 살펴보겠습니다. 다음으로 색상 매트릭스를 사용하여 이미지의 색상을 조정하여 채도 효과를 수정하는 단계를 살펴보겠습니다. 마지막으로 추가 개선 사항에 대한 유용한 링크를 제공합니다. 시작하겠습니다!

이 문서에서는 다음 주제를 다룹니다.

  1. 채도 효과 및 SVG 색상 매트릭스란?
  2. 색상 매트릭스를 사용한 채도 효과를 위한 C# SVG API
  3. 채도 효과를 위해 SVG 컬러 매트릭스를 사용하는 방법
  4. C#에서 Color Matrix를 사용하여 채도 효과 만들기

채도 효과 및 SVG 색상 매트릭스란?

채도 효과는 이미지를 보다 생생하게 보이게 하는 데 사용되는 일반적인 이미지 처리 기술입니다. 색상의 강도를 설명합니다.

채도 효과는 우리의 두뇌가 색상을 처리하는 방식에 의해 발생합니다. 우리가 이미지를 볼 때 우리의 뇌는 자동으로 색상을 조정하여 더 자연스럽게 보입니다. 그러나 이미지의 색상이 너무 많거나 색상의 균형이 고르지 않으면 뇌가 이미지를 처리하는 데 더 많은 시간이 소요되어 채도 효과가 발생할 수 있습니다.

SVG 필터 요소를 사용하여 채도 효과를 얻을 수 있습니다. 변환 매트릭스를 기반으로 색상을 변경하는 색상 변환용 필터를 제공합니다.

색상 매트릭스를 사용한 채도 효과를 위한 C# SVG API

채도 효과는 색상 매트릭스를 사용하는 특별한 경우입니다. 필터 프리미티브의 포화 작업을 사용하기 위해 Aspose.SVG for .NET API를 사용할 것입니다. API를 사용하면 소프트웨어 종속성 없이 SVG 파일을 로드, 구문 분석, 렌더링, 생성 및 인기 형식으로 변환할 수 있습니다.

API의 DLL을 다운로드하거나 NuGet을 사용하여 설치하십시오.

PM> Install-Package Aspose.SVG

채도 효과를 위해 SVG 색상 매트릭스를 사용하는 방법

는 입력 이미지의 각 픽셀의 RGBA 채널에 행렬 변환을 적용합니다. 다음 단계에 따라 채도 효과를 위해 SVG 요소를 사용할 수 있습니다.

  1. SVG 문서를 정의하고 SVG 네임스페이스 URL을 설정합니다.
  2. 이미지 요소와 필터 요소를 만듭니다.
  3. 그래픽 요소를 추가합니다.
  4. feColorMatrix 요소를 만들어 필터 요소에 추가합니다.
  5. 출력 SVG 이미지를 저장합니다.

다음 섹션에서는 이러한 단계를 C# 코드로 변환하고 SVG에서 채도 효과를 만드는 방법을 설명합니다.

C#에서 색상 매트릭스를 사용하여 채도 효과 만들기

다음 단계에 따라 요소를 사용하여 채도 효과를 만들 수 있습니다.

  1. 먼저 SVGDocument 클래스의 인스턴스를 만듭니다.
  2. 그런 다음 루트 SVG 요소에 액세스하고 SVG에 대한 네임스페이스 URL을 지정합니다.
  3. 그런 다음 SVGImageElement 클래스 개체를 초기화합니다.
  4. 한편, SVGImageElement에 대한 이미지 경로 및 기타 속성을 설정합니다.
  5. 다음으로 SVGDefsElement 클래스 개체를 정의하고 루트 요소에 추가합니다.
  6. 그런 다음 SVGFilterElement 클래스 개체를 만들어 SVGDefsElement에 추가합니다.
  7. 다음으로 SVGFEColorMatrixElement 클래스 객체를 정의합니다.
  8. 그런 다음 필수 속성 ig type: saturate를 설정합니다.
  9. 그런 다음 SVGFEColorMatrixElement를 SVGFilterElement에 추가합니다.
  10. 마지막으로 Save() 메서드를 사용하여 출력 SVG 파일을 저장합니다.

다음 코드 샘플은 C#에서 색상 매트릭스를 사용하여 채도 효과를 만드는 방법을 보여줍니다.

// 이 코드 예제에서는 C#에서 색상 매트릭스를 사용하여 채도 효과를 만드는 방법을 보여줍니다.
// SVGDocument의 인스턴스 만들기
var document = new SVGDocument();

// 문서의 루트 svg 요소 가져오기
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);

// defs 요소를 만들고 svgElement에 추가
Aspose.Svg.SVGDefsElement defsElement = (Aspose.Svg.SVGDefsElement)document.CreateElementNS(SvgNamespace, "defs");
svgElement.AppendChild(defsElement);

// 필터 요소를 만들고 defsElement에 추가
Aspose.Svg.SVGFilterElement filterElement = (Aspose.Svg.SVGFilterElement)document.CreateElementNS(SvgNamespace, "filter");
defsElement.AppendChild(filterElement);

// feColorMatrix 요소 생성
var feColorMatrixElement = (SVGFEColorMatrixElement)document.CreateElementNS(SvgNamespace, "feColorMatrix");
feColorMatrixElement.In1.BaseVal = "SourceGraphic";
feColorMatrixElement.SetAttribute("type", "saturate");
feColorMatrixElement.SetAttribute("values", "2");
filterElement.Id = "CM";

// 필터 요소에 추가
filterElement.AppendChild(feColorMatrixElement);

// SVG 문서 저장
document.Save("C:\\Files\\ColorEffect.svg");
소스 이미지 등대.jpg

소스 입력 이미지

SVG 컬러 매트릭스를 사용한 채도 효과

C#에서 SVG 색상 매트릭스를 사용한 채도 효과

<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>

무료 API 라이선스 받기

평가 제한 없이 라이브러리를 사용하려면 무료 임시 라이센스를 얻으십시오.

결론

이 기사에서는 이미지의 채도 효과에 대해 배웠습니다. 또한 C#에서 SVG 색상 매트릭스 필터를 사용하여 채도 색상 효과를 적용하는 방법도 보았습니다. 또한 문서를 사용하여 .NET용 Aspose.SVG에 대해 자세히 알아보고 API에서 제공하는 다양한 기능을 탐색할 수 있습니다. 모호한 점이 있는 경우 무료 지원 포럼에서 언제든지 문의해 주십시오.

또한보십시오