Linux의 System.Drawing

Linux에서 .NET Core 애플리케이션을 실행해야 하는 경우 주요 문제 중 하나가 표준 .NET Core 패키지에 System.Drawing 어셈블리가 없다는 것을 알았을 것입니다. Microsoft에서는 System.Drawing.Common 사용을 권장하지만 이것이 궁극적인 솔루션은 아닙니다. libgdiplus 라이브러리를 설치하려면 각 사용자 컴퓨터에서 ‘sudo’를 실행해야 합니다. 그리고 그 후에도 렌더링 결과는 Windows 시스템에서와 약간 다를 것입니다. 이 문제를 해결하기 위해 이 기사에서는 libgdiplus 라이브러리 없이 Linux에서 System.Drawing을 사용하는 방법을 다룹니다.

Linux에서 System.Drawing 사용

다행히 이제 솔루션이 있습니다. 아래에서는 .NET 그래픽 API인 .NET용 Aspose.Drawing이 Linux에서 System.Drawing을 사용하는 데 어떻게 도움이 되는지 보여줍니다. Aspose.Drawing을 사용하면 네이티브 코드로 그래픽 라이브러리를 제거하고 모든 플랫폼에서 이미지가 동일하게 보이도록 할 수 있습니다.

.NET 그래픽 API - 간편한 설치

대상 Linux 시스템에 Aspose.Drawing을 설치하려면 .NET Core만 설치하면 됩니다. 프로젝트 폴더에 Aspose.Drawing.dll을 넣고 프로그램을 실행합니다. 그게 다야. 이제 Windows의 .NET Framework 응용 프로그램에서 수행하는 것처럼 System.Drawing 네임스페이스의 클래스를 사용할 수 있습니다.

Aspose.Drawing 바이너리를 얻으려면 공식 웹사이트에서 최신 버전을 다운로드하십시오. 또는 다음 명령을 실행하여 프로젝트에 API를 직접 포함할 수 있습니다.

dotnet add package Aspose.Drawing

추가 구성 요소가 필요하지 않습니다. Aspose.Drawing은 네이티브 라이브러리를 참조하지 않고 모든 드로잉 자체를 수행합니다. 다음과 같은 메시지는 절대 받지 않습니다.

Unable to load DLL 'libgdiplus': The specified module could not be found.

그리고 플랫폼에 설치된 그래픽 시스템의 버전에 대해 신경 쓸 필요가 없습니다.

예측할 수 없는 플랫폼 문제 없음

System.Drawing.Common을 사용하면 Windows에서 성공적으로 실행된 코드를 실행할 때 Linux에서 예측할 수 없는 오류가 발생할 수 있습니다.

WARNING *: Path conversion requested 34759680 bytes (2480 x 3504). Maximum size is 8388608 bytes.
ERROR:region.c:1155:GdipCombineRegionPath: assertion failed: (region->bitmap)

Aspose.Drawing은 libgdiplus에 의존하지 않으므로 이러한 문제에서 자유롭습니다. 완전히 관리되는 드로잉 엔진이 있으므로 기본 그래픽 라이브러리에 대한 종속성이 없습니다. 더 이상 이해할 수 없는 플랫폼 오류와 프로그램의 예측할 수 없는 동작이 발생하지 않습니다.

동일한 렌더링 결과

Aspose.Drawing 사용의 또 다른 이점은 지원되는 모든 플랫폼에서 동일한 렌더링 결과를 얻을 수 있다는 것입니다. .NET Core에서 System.Drawing.Common을 사용하는 경우 렌더링 결과가 Windows와 Linux에서 다르게 보일 수 있습니다. 아래 예를 참조하세요.

Linux 및 Windows의 System.Drawing

Aspose.Drawing을 사용하면 Windows, Linux 또는 Android용 크로스 플랫폼 그래픽 응용 프로그램을 만들 수 있으며 각 플랫폼에서 항상 동일한 렌더링 결과를 얻을 수 있습니다. 이는 타사 그래픽 라이브러리에 의존하는 대신 플랫폼 독립적인 2D 렌더링 엔진을 생성함으로써 달성되었습니다.

그래픽 프리미티브를 제외하고 글꼴 렌더링은 모든 플랫폼에서 동일합니다. Linux의 시스템 글꼴은 Windows와 다르지만 PrivateFontCollection을 사용하여 고유한 글꼴 집합을 로드할 수 있습니다. 또 다른 방법은 Microsoft 글꼴 팩을 Linux 시스템에 설치하고 평소와 같이 텍스트 렌더링 기능을 호출하는 것입니다.

Aspose.Drawing 무료 체험하기

Aspose.Drawing은 NuGet에서 사용할 수 있습니다. 바이너리 또는 MSI 설치 프로그램을 다운로드할 수도 있습니다. Aspose.Drawing 라이브러리를 제한적으로 사용하거나 무료 평가판 라이선스를 요청할 수 있습니다.

그래서 오늘 시도해 보지 않겠습니까?

결론

이 기사에서는 종속성 없이 모든 플랫폼에서 System.Drawing을 사용하고 동일한 결과를 얻는 것이 얼마나 쉬운지 확인했습니다. Aspose.Drawing에 대한 자세한 내용은 공식 페이지에서 확인할 수 있습니다. 질문이 있는 경우 포럼을 사용하고 향후 게시물과 가이드를 계속 지켜봐 주시기 바랍니다.

또한보십시오