2017-09-19 16 views
1

System.Drawingを使用せずにwmfファイルをバイト配列に変換する必要があります。 System.Drawingを使用できない理由は、GDI +の一部の機能がAzure環境でサポートされていないためです。コードはローカル環境では正常に実行されますが、サーバーにデプロイされても機能しません。私はGDI +を利用するために、アプリケーションの外部でサイズ変更ロジックをAzure VMに移動しなければなりませんでした。レガシーアプリケーション用にwmfファイルをサポートする必要があります。System.Drawingを使用せずにメタファイルイメージをバイト配列に変換する

Azure Webアプリケーションにデプロイすると、次のエラーが発生します。

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); 
    } 
関連する問題