2017-09-19 17 views
1

System.Drawing을 사용하지 않고 wmf 파일을 바이트 배열로 변환해야합니다. System.Drawing을 사용할 수없는 이유는 Azure 환경에서 GDI +의 일부 기능이 지원되지 않기 때문입니다. 이 코드는 로컬 환경에서 잘 실행되지만 서버에 배포 할 때는 작동하지 않습니다. GDI +를 활용하기 위해 Azure VM으로 애플리케이션 외부에서 크기 조정 로직을 이동해야했습니다. 레거시 애플리케이션을위한 wmf 파일을 지원해야합니다.System.Drawing없이 메타 파일 이미지를 바이트 배열로 변환

다음은 Azure 웹 응용 프로그램에 배포 할 때 실패합니다.

byte[] imgArr; 
using (var ms = new MemoryStream()) 
{ 
    sourceImage.Save(ms, ImageFormat.Png); 
    imgArr = ms.ToArray(); 
} 

var imgCon = new ImageConverter(); 
var imgArr = (byte[])imgCon.ConvertTo(sourceImage, typeof(byte[])); 

는 System.Drawing 라이브러리를 활용하고는 GDI +를 사용합니다. Windows 메타 파일을 바이트 배열로 가져 오는 다른 방법이 있습니까?

답변

0

제발 내 옆에있는 다음 코드를 사용해보십시오.

FileInfo fileInfo = new FileInfo(path); // the path should be accessed in the azure portal 

    // The byte[] to save the imgArr in 
    byte[] imgArr= new byte[fileInfo.Length]; 

    // Load a filestream and put its content into the byte[] 

    using (FileStream fs = fileInfo.OpenRead()) 
    { 
     fs.Read(imgArr, 0, imgArr.Length); 
    }