我正在使用 WinFax.dll 在我的应用程序中发送和接收传真,它现在运行良好。问题是我想将图像信息保存在 FaxJob 中,但输出不是任何可识别的格式。
我尝试过使用 Tiff、Gif、Bmp、Png 和 Jpg,但它不起作用,所以我认为我的操作方式可能存在问题。这是我用来获取图像的源代码:
public class FaxJob
{
public Image GetImage()
{
uint width;
uint height;
uint size;
byte[] data;
IntPtr buffer;
if (NativeMethods.FaxGetPageData(this.Server.faxHandle, this.id, out buffer, out size, out width, out height) == false)
throw FaxTools.CreateFaxException(string.Empty);
data = new byte[size];
Marshal.Copy(buffer, data, 0, Convert.ToInt32(size));
var ms = new MemoryStream();
ms.Write(data, 0, data.Length);
var img = Image.FromStream(ms);
return img;
}
}
internal class NativeMethods
{
[DllImport("WinFax.dll", SetLastError = true, EntryPoint = "FaxGetPageData")]
[return: MarshalAs(UnmanagedType.Bool)]
internal static extern bool FaxGetPageData(IntPtr FaxHandle, uint JobId, out IntPtr Buffer, out uint BufferSize, out uint ImageWidth, out uint ImageHeight);
}
它似乎运行良好,因为返回了图像宽度和高度,并且 byte[] 包含图像数据。
非常感谢任何想法。