C#을 통한 그레이스케일 SVG
서버 측 API를 사용하여 SVG 파일을 그레이스케일하도록 고유한 .NET 앱을 빌드합니다.
C#을 사용하여 SVG 파일을 그레이스케일하는 방법
밝기와 다색은 아름다운 이미지의 동반자입니다. 그러나 컬러 인쇄가 항상 가능한 것은 아닙니다. 이러한 경우 사진을 회색조로 변환해야 합니다. 또한 이 기능은 독립적인 예술적 접근 방식으로 활용되어 웹사이트의 매력을 높일 수 있습니다. 잠재적으로 인식을 방해할 수 있는 전환 중 색상 정보의 손실을 한탄하는 대신 이를 활용하십시오. 이미지의 세부 묘사, 표면 질감, 밝은 영역과 어두운 영역의 상호 작용에 집중하여 독특한 시각적 경험을 만들어보세요. 회색조 SVG 파일을 사용하려면 다음을 사용합니다. .NET용 Aspose.Imaging 기능이 풍부하고 강력하며 사용하기 쉬운 C# 플랫폼용 이미지 조작 및 변환 API인 API입니다. 열려있는 누겟 패키지 관리자, 검색 아포즈.이미징 설치합니다. 패키지 관리자 콘솔에서 다음 명령을 사용할 수도 있습니다.
패키지 관리자 콘솔 명령
PM> Install-Package Aspose.Imaging
C#을 통한 SVG 그레이스케일 단계
당신은 필요합니다 aspose.imaging.dll 자신의 환경에서 다음 워크플로를 시도합니다.
- Image.Load 메서드로 SVG 파일 로드
- 회색조 이미지;
- Aspose.Imaging 형식에서 지원하는 압축 이미지를 디스크에 저장
시스템 요구 사항
.NET용 Aspose.Imaging은 모든 주요 운영 체제에서 지원됩니다. 다음 전제 조건이 있는지 확인하십시오.
- Microsoft Windows 또는 .NET Framework, .NET Core, Windows 애플리케이션, ASP.NET 웹 애플리케이션과 호환되는 OS.
- Microsoft Visual Studio와 같은 개발 환경.
- 프로젝트에서 참조되는 .NET용 Aspose.Imaging.
그레이스케일 SVG 이미지 - .NET
using Aspose.Imaging; | |
using Aspose.Imaging.FileFormats.Bmp; | |
using Aspose.Imaging.FileFormats.Dicom; | |
using Aspose.Imaging.FileFormats.Emf; | |
using Aspose.Imaging.FileFormats.Jpeg; | |
using Aspose.Imaging.FileFormats.Jpeg2000; | |
using Aspose.Imaging.FileFormats.Png; | |
using Aspose.Imaging.FileFormats.Psd; | |
using Aspose.Imaging.FileFormats.Tiff.Enums; | |
using Aspose.Imaging.ImageFilters.FilterOptions; | |
using Aspose.Imaging.ImageOptions; | |
using Aspose.Imaging.Masking; | |
using Aspose.Imaging.Masking.Options; | |
using Aspose.Imaging.Masking.Result; | |
using Aspose.Imaging.Sources; | |
using System; | |
using System.Collections.Generic; | |
using System.IO; | |
using System.Linq; | |
string templatesFolder = @"c:\Users\USER\Downloads"; | |
GrayscaleImages(); | |
void GrayscaleImages() | |
{ | |
List<string> rasterFormats = new List<string>() { "jpg", "png", "bmp", "apng", "dicom", | |
"jp2", "j2k", "tga", "webp", "tif", "gif","ico" }; | |
List<string> vectorFormats = new List<string>() { "svg", "otg", "odg", "eps", "wmf", "emf", "wmz", "emz", "cmx", "cdr" }; | |
List<string> allFormats = new List<string>(rasterFormats); | |
allFormats.AddRange(vectorFormats); | |
allFormats.ForEach( | |
formatExt => | |
{ | |
var inputFile = Path.Combine(templatesFolder, $"template.{formatExt}"); | |
bool isVectorFormat = vectorFormats.IndexOf(formatExt) > -1; | |
//Need to rasterize vector formats before background remove | |
if (isVectorFormat) | |
{ | |
inputFile = RasterizeVectorImage(formatExt, inputFile); | |
} | |
var outputFile = Path.Combine(templatesFolder, $"grayscale_{formatExt}.png"); | |
Console.WriteLine($"Processing {formatExt}"); | |
using (var image = (RasterImage)Image.Load(inputFile)) | |
{ | |
//Additional code examples can be found at | |
//https://apireference.aspose.com/imaging/net/aspose.imaging/rasterimage/methods/grayscale | |
image.Grayscale(); | |
//If image is multipage save each page to png to demonstrate results | |
if (image is IMultipageImage multiPage && multiPage.PageCount > 1) | |
{ | |
for (var pageIndex = 0; pageIndex < multiPage.PageCount; pageIndex++) | |
{ | |
string fileName = $"grayscale_page{pageIndex}_{formatExt}.png"; | |
multiPage.Pages[pageIndex].Save(templatesFolder + fileName, new PngOptions()); | |
File.Delete(templatesFolder + fileName); | |
} | |
} | |
else | |
{ | |
image.Save(outputFile, new PngOptions()); | |
File.Delete(outputFile); | |
} | |
} | |
//Remove rasterized vector image | |
if (isVectorFormat) | |
{ | |
File.Delete(inputFile); | |
} | |
} | |
); | |
} | |
string RasterizeVectorImage(string formatExt, string inputFile) | |
{ | |
string outputFile = Path.Combine(templatesFolder, $"rasterized.{formatExt}.png"); | |
using (var image = Image.Load(inputFile)) | |
{ | |
image.Save(outputFile, new PngOptions()); | |
} | |
return outputFile; | |
} |
.NET API용 Aspose.Imaging 정보
Aspose.Imaging API는 애플리케이션 내에서 이미지(사진)를 생성, 수정, 그리기 또는 변환하는 이미지 처리 솔루션입니다. 다양한 이미지 형식 간의 변환(균일한 다중 페이지 또는 다중 프레임 이미지 처리 포함), 그리기와 같은 수정, 그래픽 프리미티브 작업, 변환(크기 조정, 자르기, 뒤집기 및 회전)을 포함하되 이에 국한되지 않는 플랫폼 간 이미지 처리 , 이진화, 회색조, 조정), 고급 이미지 조작 기능(필터링, 디더링, 마스킹, 기울기 보정) 및 메모리 최적화 전략. 독립 실행형 라이브러리이며 이미지 작업을 위해 소프트웨어에 의존하지 않습니다. 프로젝트 내에서 기본 API를 사용하여 고성능 이미지 변환 기능을 쉽게 추가할 수 있습니다. 이는 100% 비공개 온프레미스 API이며 이미지는 서버에서 처리됩니다.온라인 앱을 통한 그레이스케일 SVG
라이브 데모 웹사이트 를 방문하여 그레이스케일 SVG 문서. 라이브 데모에는 다음과 같은 이점이 있습니다.
SVG 뭐가 SVG 파일 형식
SVG 파일은 이미지의 모양을 설명하기 위해 XML 기반 텍스트 형식을 사용하는 확장 가능한 벡터 그래픽 파일입니다. Scalable이라는 단어는 SVG가 품질을 잃지 않고 다양한 크기로 확장될 수 있다는 사실을 나타냅니다. 이러한 파일에 대한 텍스트 기반 설명은 파일을 해상도와 무관하게 만듭니다. 확장성을 확보하기 위해 웹사이트를 구축하고 그래픽을 인쇄할 때 가장 많이 사용되는 형식 중 하나입니다. 형식은 2차원 그래픽에만 사용할 수 있습니다. SVG 파일은 Chrome, Internet Explorer, Firefox 및 Safari를 포함한 거의 모든 최신 브라우저에서 보거나 열 수 있습니다.
더 읽어보기기타 지원되는 그레이스케일 형식
C#을 사용하면 다음을 포함한 다양한 형식을 쉽게 그레이스케일할 수 있습니다.