我需要在不使用System.Drawing的情况下将wmf文件转换为字节数组。我无法使用System.Drawing的原因是Azure环境中不支持GDI +的某些功能。代码将在本地环境中执行,但在部署到服务器时将无法运行。我必须将我们应用程序之外的调整大小逻辑移动到Azure VM才能使用GDI +。我们必须支持遗留应用程序的wmf文件。
部署到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 :(得分: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);
}