2016-07-09 3 views
3

최근에 ASP.NET MVC 응용 프로그램을 ASP.NET에서 ASP.NET Core로 업그레이드했습니다. 제 컨트롤러 행동ASP.NET의 서버 측 그래픽 코어

는 I 프로파일 사진

using (FileStream stream = new FileStream(HttpContext.Server.MapPath($"~/Content/UserFiles/{AuthenticatedUser.Id.ToString()}.jpg"), FileMode.OpenOrCreate)) 
{ 
    Image image = Image.FromStream(model.DisplayPicture.InputStream); 
    image.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg); 
} 

화상 데이터 Base64로 인코딩 된 이미지

data:image/png;base64,.... 
로 서버에 게시를 만들 System.Drawing 의존 코드 부분을 가지고

.NET 코어에는 System.Drawing이 없으므로이를 달성 할 수있는 다른 라이브러리가 있습니까?

+0

안녕하세요, 아주 비슷한 질문이 있습니다. http://stackoverflow.com/questions/33344200/manipulating-images-with-net -core-5, 내가 지금하고있는 것은 플랫폼 호환성을 뛰어 넘고 .NET 핵심 프레임 워크를 제거하는 것이며 앞으로 우리는 그들이 어떤 패키지를 추가 할 것인지를 보게 될 것입니다 ... –

답변

1

Stanislav가 지적한 것처럼 현재 솔루션은 ASP.NET .NET을 전체 .NET 프레임 워크에서 사용하는 것입니다. System.Drawing은 GDI + 호출에 의존하므로 Windows에 바인딩됩니다.

Image Imizer의 vNext 버전은 새로운 imageflow 프로젝트를 기반으로이 문제를 해결합니다. ASP.NET과 같은 서버 환경에서는 System.Drawing을 사용하지 말아야합니다 (https://msdn.microsoft.com/en-us/library/system.drawing(v=vs.110).aspx으로 지적). 이 주제에 대한 배경은 https://github.com/imazen/Graphics-vNext에 있습니다.

ImagerResizing의 4.0.5 버전을 사용하고 몇 달 후에 업그레이드하는 것이 좋습니다 (내년에는 안정적인 vNext 버전이 발표됩니다).

+0

그래, 나는 그것을 가리키는 몇 가지 기사를 보았습니다. 필자는 당분간 간단하게 Base64로 인코딩 된 이미지 데이터를 파일로 저장 한 다음 모델을 통해 다시로드하기로 결정했습니다. – series0ne

1

Base64를 이미지 파일로 변환하려는 경우 System.Drawing이 필요하지 않습니다. 내 구름 속에서 그렇게하고있어. 간단한 프로젝트. 사용자는 wysiwyg 편집기에서 이미지와 내용을 추가하고 서버에 다시 게시 할 때 해당 파일을 파일로 변환하고 파일의 URL을 확인하여 내용을 업데이트하여 새 파일에 연결합니다.

당신은 여기 내 작업 코드를 볼 수 있습니다 : 우리는 System.Drawing 또는 크기 조정 및 이미지를 최적화되어 몇 가지 다른 도구가 필요합니까 무엇 https://github.com/joeaudette/cloudscribe.SimpleContent/blob/master/src/cloudscribe.SimpleContent.Web/Services/FileSystemMediaProcessor.cs

. 얼마나 많은 기능이 현재 준비되어 있는지 잘 모르겠지만 ImageSharp project here이 있습니다.

+0

꽤 많이 있습니다. 크기 조정, 자르기, 회전 회전 등을 할 수 있습니다. 덧붙여서 Image.ToString() 메서드는 Base64로 인코딩 된 이미지를 만듭니다. –

관련 문제