Provided you're using pdfsharp and not migradoc:
Code:
// byte[] jpegdata contains the jpeg image.
using (MemoryStream ms = new MemoryStream(jpegdata))
{
using (XImage img = XImage.FromStream(ms))
{
gfx.DrawImage(img, ip.dx, ip.dy, ip.dw, ip.dh);
}
}
It is not necessary to create an Image object as an intermediate step.
For the Core build of PDFsharp, it is more efficient to create a MemoryStream with a public buffer:
Code:
// byte[] jpegdata contains the jpeg image.
using (MemoryStream ms = new MemoryStream(jpegdata, 0, jpegdata.Length, false, true))
{
using (XImage img = XImage.FromStream(ms))
{
gfx.DrawImage(img, ip.dx, ip.dy, ip.dw, ip.dh);
}
}