Я использую WinFax.dll для отправки и получения факсов в своем приложении, и на данный момент это работает довольно хорошо. Проблема в том, что я хочу сохранить информацию об изображении в FaxJob, но вывод не в любом распознаваемом формате.
Я пробовал с Tiff, Gif, Bmp, Png и Jpg, но это не работает, поэтому я подумал, что, возможно, есть проблема в том, как я это делаю. Вот исходный код, который я использовал для получения изображения:
</p>
<pre>
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);
}
</pre>
<p>
Кажется, что он работает хорошо, когда возвращаются ширина и высота изображения, а байт [] содержит данные изображения.
Любая идея очень ценится.