using System;
|
using System.Collections.Generic;
|
using System.Text;
|
using System.IO;
|
using HH.WMS.Utils.ExcelLibrary.BinaryDrawingFormat;
|
|
namespace HH.WMS.Utils.ExcelLibrary.SpreadSheet
|
{
|
public class Image
|
{
|
public ushort Format;
|
public byte[] Data;
|
|
public Image(byte[] data, ushort imageFormat)
|
{
|
Data = data;
|
Format = imageFormat;
|
}
|
|
public string FileExtension
|
{
|
get { return GetImageFileExtension(this.Format); }
|
}
|
|
public static Image FromFile(string filepath)
|
{
|
byte[] data = File.ReadAllBytes(filepath);
|
ushort format = JudgeFromFileExtension(Path.GetExtension(filepath));
|
return new Image(data, format);
|
}
|
|
public static string GetImageFileExtension(ushort imageForamt)
|
{
|
switch (imageForamt)
|
{
|
case EscherRecordType.MsofbtBlipMetafileEMF:
|
return ".emf";
|
case EscherRecordType.MsofbtBlipMetafileWMF:
|
return ".wmf";
|
case EscherRecordType.MsofbtBlipBitmapJPEG:
|
return ".jpeg";
|
case EscherRecordType.MsofbtBlipBitmapPNG:
|
return ".png";
|
case EscherRecordType.MsofbtBlipBitmapDIB:
|
return ".bmp";
|
default:
|
return "unknown";
|
}
|
}
|
|
private static ushort JudgeFromFileExtension(string ext)
|
{
|
switch (ext.ToLower())
|
{
|
case ".emf":
|
return EscherRecordType.MsofbtBlipMetafileEMF;
|
case ".wmf":
|
return EscherRecordType.MsofbtBlipMetafileWMF;
|
case ".jpeg":
|
return EscherRecordType.MsofbtBlipBitmapJPEG;
|
case ".png":
|
return EscherRecordType.MsofbtBlipBitmapPNG;
|
case ".bmp":
|
return EscherRecordType.MsofbtBlipBitmapDIB;
|
default:
|
return 0;
|
}
|
}
|
}
|
}
|