Hi,
I'm trying to send a bitmap using WCF and here's the steps i followed:
1-Convert it into byte array

private IDataObject tempObj;
private System.Drawing.Image tempImg;
tempObj = Clipboard.GetDataObject();
tempImg = (System.Drawing.Bitmap)tempObj.GetData(System.Windows.Forms.DataFormats.Bitmap);
tempImg.Save("hello.bmp");
VideoData = System.IO.File.ReadAllBytes("hello.bmp");

2-Receiving the byte array from the other client side and convert it into bitmap to display it

public void ReceiveByteArray(byte[] Data)
        {
            try
            {
                TypeConverter tc = TypeDescriptor.GetConverter(typeof(Bitmap));
                Bitmap bitmap1 = (Bitmap)tc.ConvertFrom(Data);

                pictureBox2.Image = bitmap1;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

i don't know why pictureBox.Image is always black...it doesn't display the image,although the "hello.bmp" file on the hard disk changes while catching the picture.

N.B the byte array "Data" isn't set to null it contains the values i sent from the other client side.

Recommended Answers

All 4 Replies

If you saved this bitmap on client's HDD, what the result, also black?

yes it's black...

Check if your array comes in order or not.

Yes it comes in order and everything is okay...it was a matter of format.

private void WebCamCapture_ImageCaptured(object source, WebcamEventArgs e)
        {
            // set the picturebox picture
            MemoryStream ms = new MemoryStream();
            e.WebCamImage.Save(ms, ImageFormat.Jpeg);

            proxy.SendShot(new SimpleSvc.VideoChat(ms.ToArray(),lstContacts.SelectedItem.ToString()));

            this.pictureBox1.Image = e.WebCamImage;
        }

Thanks for help

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.