Using C#, how would you convert var type variables to image type variables to pass to a function?

I am writing a C# console application that generates 2 files in binary format.

1 file is comprised of the front images of checks.

1 file is comprised of the back images of checks.

Do you know how I could modify this code (in particular the Function call) to merge these 2 TIFF files together into 1 TIFF file (called a multipage TIFF image)?

I want to give the user the ability to read the front image of a particular check image and then read the back image of the same check.

The img variable contains the front images of checks.
The img1 variable contains the back images of checks.

var img = bytes.Skip(irecpositionrevised + irectypelength).Take(intpos1revised).ToArray();

var img1 = bytes.Skip(irecpositionrevised + irectypelength + intpos1revised).Take(intpos2revised).ToArray();

MergeTwoImages(img, img1)  <--------  This will not work because the data type needs to be converted

public static Bitmap MergeTwoImages(Image firstImage, Image secondImage)
if (firstImage == null)
      throw new ArgumentNullException("firstImage");

if (secondImage == null)
      throw new ArgumentNullException("secondImage");

int outputImageWidth = firstImage.Width > secondImage.Width ? firstImage.Width : secondImage.Width;

int outputImageHeight = firstImage.Height + secondImage.Height + 1;

Bitmap outputImage = new Bitmap(outputImageWidth, outputImageHeight, System.Drawing.Imaging.PixelFormat.Format32bppArgb);

using (Graphics graphics = Graphics.FromImage(outputImage))
     graphics.DrawImage(firstImage, new Rectangle(new Point(), firstImage.Size),
               new Rectangle(new Point(), firstImage.Size), GraphicsUnit.Pixel);
     graphics.DrawImage(secondImage, new Rectangle(new Point(0, firstImage.Height + 1), secondImage.Size),    
               new Rectangle(new Point(), secondImage.Size), GraphicsUnit.Pixel);

return outputImage;
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Ioannis ParaskevopoulosCommented:

img and img1 are byte arrays. You can load a memory stream from these arrays and then use the static Image.FromStream to get an Image object.

You can have a method:

private Image ConvertFromByteArray(byte[] input)
    using (var ms = new MemoryStream(input))
        return Image.FromStream(ms);

Open in new window

and then you will use it as

MergeTwoImages(ConvertFromByteArray(img), ConvertFromByteArray(img1))

Open in new window

I have not tested this, but it is an idea,

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
ste5anSenior DeveloperCommented:
Don't use var.. I never did in production code..
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.