Từ 1 tới 3 trên tổng số 3 kết quả

Đề tài: Làm thế nào để truyền ảnh có dung lượng lớn qua mạng?

  1. #1
    Ngày gia nhập
    11 2010
    Bài viết
    16

    Question Làm thế nào để truyền ảnh có dung lượng lớn qua mạng?

    Giúp mình về vấn đề truyền ảnh qua mạng với:
    Mình lập trình truyền ảnh qua mạng bằng giao thức UDP
    đây là giao diện chuơng trình:

    khi truyền ảnh có dung lượng nhỏ thì OK, còn truyền ảnh dung lượng cỡ 200KB. VD ảnh này:

    thì nó hiện thông báo thế này

    Làm thế nào để khắc phục lỗi này vậy, mong các bác giúp đỡ mình phần này
    Đây là code của mình:
    Code:
    public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                CheckForIllegalCrossThreadCalls = false;
            }
    
            public byte[] imageToByteArray(System.Drawing.Image imageIn)
            {
                MemoryStream ms = new MemoryStream();
                imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
                return ms.ToArray();
            }
    
            public Image byteArrayToImage(byte[] byteArrayIn)
            {
                MemoryStream ms = new MemoryStream(byteArrayIn);
                Image returnImage = Image.FromStream(ms);
                return returnImage;
            }
    
            private void btSend_Click(object sender, EventArgs e)
            {
                UdpClient send = new UdpClient();
                IPEndPoint iepRemote = new IPEndPoint(IPAddress.Parse(txtIP.Text), int.Parse(txtRemotePort.Text));
                byte[] data = new byte[4096];
                OpenFileDialog ofd=new OpenFileDialog();
                Image img;
                string path;
                if (ofd.ShowDialog() == DialogResult.OK)
                {
                    path = ofd.FileName;
                    img = Image.FromFile(path);
                    data = imageToByteArray(img);
                    send.Send(data, data.Length, iepRemote);
                }
            }
    
            private void btConnect_Click(object sender, EventArgs e)
            {
                Thread tuyen = new Thread(new ThreadStart(NhanDL));
                tuyen.Start();
            }
    
            private void NhanDL()
            {
                UdpClient recv = new UdpClient(int.Parse(txtLocalPort.Text));
                IPEndPoint iep = new IPEndPoint(IPAddress.Any, 0);
                byte[] data = new byte[4096];
                data = recv.Receive(ref iep);
                pic.Image = byteArrayToImage(data);
            }
        }
    Muốn THÀNH CÔNG phải KIÊN TRÌ giữ vững MỤC TIÊU

  2. #2
    Ngày gia nhập
    11 2010
    Bài viết
    16

    Hic, không ai giúp mình à
    Muốn THÀNH CÔNG phải KIÊN TRÌ giữ vững MỤC TIÊU

  3. #3
    Ngày gia nhập
    05 2011
    Bài viết
    82

    Có thể một lần gửi lần lượt 1 lượng byte nhất định thay vì gửi cả file.
    Code:
                MemoryStream ms = new MemoryStream();
                imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
                byte[] data = new byte[512];
                ....
                int count = memStream.Read(data, 0, 512);// doc 512 byte
                while(count >0 ){ // trong khi con doc dc du lieu
                      send.Send(data, count, iepRemote);// send du lieu
                      count = memStream.Read(data, 0, 512);// doc tiep du lieu
                }

Các đề tài tương tự

  1. Trả lời: 11
    Bài viết cuối: 30-11-2012, 09:22 PM
  2. Algorithm làm sao lấy nội dung textbox đổ vào màng ròi truyền sang from khác
    Gửi bởi sergio090588 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 8
    Bài viết cuối: 04-11-2012, 11:10 AM
  3. không thể hiển thị nội dung chứa unicode or nội dung đặt trong thẻ của textbox
    Gửi bởi thuanduong trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 27-11-2010, 10:13 PM
  4. Truyền nội dung của Richtextbox sang Form khác
    Gửi bởi dielove trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 26-07-2010, 11:11 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn