모꼬지라는 웹 사이트를 서비스 하고 있어요~


클래스 및 모임 을 중계해 주는 사이트인데


이미지 관련된 부분이 많아서 Thumbnail을 만들어보려고 하는 도중에


비트윈이라는 프로그램에서 Skia를 쓰고 나서 속도가 빨라졌다는 얘기를 듣고 도전해보기로 했어요


제가 닷넷 유저라  닷넷으로된 소스가 없나 찾아보았더니 


GitHub에 모노(Mono) 프로젝트로 SkiaSharp 이 있더라구요 너무 다행이었어요.


C++로 된 LIB를 가져와서 DLL로 변환 후에 Dllmport 하지 않아도 되는 귀찮음이 없어져서요^^


물론 Visual Studio 켜서~ Nuget Pagkage 쪽에서 SkiaSharp으로 받아도 된답니다.~


SkiaLibrary 설명으로는 제가 본것은 Xamarin 쪽에 올라온 것과 구글쪽에 라이브러리 설명이 있어요


라이브러리 설명 :  구글 , Xamarin


모르는 라이브러리 있으면 찾아보면 됩니다.


지금 버전은 Version 1.54.0에요


GitHub으로 다운을 받았다면 아래와 같은 폴더 구성으로 되어있어요



자자 다른건 볼 필요없이 samples 폴더-> Skia.WPF.Demo 폴더로 들어가서 Solution 프로젝트(Skia.WPF.Demo.sln)를 열어봅시다.


켜보면 분명 에러 나올겁니다. 



안나오시는 분들있으면 그대로 진행해주세요^^.

오류 내용은 1.54.0.1 버전으로 받아야져있는데 Nuget에는 1.54.0 버전만 있어서 찾을 수 없다. 이런 내용입니다. Nuget 패키지 복원하셔도 1.54.0.1이 없어서 못 받으실거에요.

해결 방법은 기존의 1.54.0.1 을 지우고 1.54.0 버전을 받으면 됩니다.


먼저 packages.config 파일로 가서 version="1.54.0.1" 로 되어있는 것을 version="1.54.0" 인 현재 버전으로 바꾸어주세요. 그러면 오류가 하나 없으질 것이고,


다시 폴더로와서 Skia.WPF.Demo.csproj 이 파일을 편집으로 열어봅시다.



<Import Project="packages\SkiaSharp.1.54.0.1\build\net45\SkiaSharp.targets" Condition="Exists('packages\SkiaSharp.1.54.0.1\build\net45\SkiaSharp.targets')" />


<Error Condition="!Exists('packages\SkiaSharp.1.54.0.1\build\net45\SkiaSharp.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\SkiaSharp.1.54.0.1\build\net45\SkiaSharp.targets'))" />


위에 두 부분을 현재 버전으로 바꿔주자


<Import Project="packages\SkiaSharp.1.54.0\build\net45\SkiaSharp.targets" Condition="Exists('packages\SkiaSharp.1.54.0\build\net45\SkiaSharp.targets')" />


<Error Condition="!Exists('packages\SkiaSharp.1.54.0\build\net45\SkiaSharp.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\SkiaSharp.1.54.0\build\net45\SkiaSharp.targets'))" />


이렇게 하면 에러는 사라진다~


이후로는 SK...CLASS이름 들의 에러가 나오는데 Nuget Package에서 SkiaSharp을 제거 후에 다시 설치하자.



이 라이브러리가 설치가 되면  빌드(Build)를 한다. 그리고 이제는 


프로젝트에 간단한 에러사항들을 처리해준다.


나의 경우는 아래의 함수가 없는데 호출할려고해서 주석으로 처리했다.

//path.GetTightBounds (out rect);


그리고 이제 빌드를 하면 

오류 The Platform needs to be either x64 or x86 to support Skia in Windows. Skia.WPF.Demo

위의 오류 메세지가 나오는데 



Platform 을 바꿔서 실행하자!x64나 x86 둘중 하나 고르면 되요



자 실행 되었다.

간단히 콤보박스를 넘겨보면서 샘플을 보자

여기까지 오셨으면 다음 시간 2탄에는 SkiaSharp을 이용해서 이미지를 Resize하는 방법을 알려주겠어요~

수고하셨습니다. 


댓글은 작성자에 대한 고마움의 표시입니다.^^

'.NET 개발 > C#' 카테고리의 다른 글

Webp C#  (0) 2016.09.23
C#의 발전 내용  (0) 2016.06.06
대리자와 람다 식  (0) 2016.06.05
lambda expression  (0) 2016.06.05
공변성, 반공변성  (0) 2016.06.05
Posted by Hoya0415
,