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

Đề tài: Truyền file ảnh giữa các Form như thế nào ?

  1. #1
    Ngày gia nhập
    05 2009
    Bài viết
    44

    Mặc định Truyền file ảnh giữa các Form như thế nào ?

    Tình hình là em đang làm 1 project về xử lý ảnh.

    Form 1 có nut brow tới file ảnh, và 1 nút xử lý.
    KHi nhấn vào nút xử lý thì sẽ mở form 2. Ảnh từ form 1 truyền qua form 2 em đã làm được rồi.

    Tại form 2 em tiến hành xử lý ảnh, biến thành ảnh đen trắng (em cũng làm đc rồi). em muốn truyền ảnh này về form 1 nhưng chưa biết làm thế nào

    EM đang vướng mắc chỗ này, bác nào có ví dụ cho em đc thì tốt quá, không thì cùng thảo luận vậy

    Bác nào rảnh cho em 1 vi dụ nhé

  2. #2
    Ngày gia nhập
    01 2011
    Nơi ở
    Hà Nội
    Bài viết
    188

    - Bạn truyền ảnh từ form 1 -> form 2 như thế nào?
    - Sao lại không thể truyền ngược lại được vậy bạn! :(

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

    Trích dẫn Nguyên bản được gửi bởi vuthanhtrung90 Xem bài viết
    - Bạn truyền ảnh từ form 1 -> form 2 như thế nào?
    - Sao lại không thể truyền ngược lại được vậy bạn! :(
    Thì mình đặt sự kiện ở nut mở form 2 là onload

    code thì đặt

    form2 frm2 = new form2((BITMAP)picturebox.images)

    sang form 2 thì xử lý cái ((BITMAP)picturebox.images) cho vài picturebox của form2

  4. #4
    Ngày gia nhập
    01 2011
    Nơi ở
    Hà Nội
    Bài viết
    188

    Bạn thử làm thế này xem sao:
    Form1:
    Visual C# Code:
    1.         private void button2_Click(object sender, EventArgs e)
    2.         {
    3.             Form2 fr = new Form2(this, (Bitmap)pictureBox1.Image);            
    4.             fr.ShowDialog();
    5.         }
    Form2:
    Visual C# Code:
    1.         Form1 fr0;
    2.         public Form2(Form1 _fr0, Bitmap bitmat1)
    3.         {
    4.             InitializeComponent();
    5.             picture = bitmat1;
    6.             fr0 = _fr0;
    7.         }
    8.         ............
    9.         ............
    10.         private void button3_Click(object sender, EventArgs e)
    11.         {
    12.             fr0.pictureBox1.Image = pictureBox2.Image;            
    13.             fr0.Show();
    14.             this.Close();
    15.         }
    Demo in file attachment
    Attached Files Attached Files

  5. #5
    Ngày gia nhập
    05 2009
    Bài viết
    44

    Cảm ơn bác ! tiện đây cho em hỏi, em đang làm thuật toán bó cụm trong môn xử lý ảnh, code em viết thế này

    Visual C# Code:
    1.  public void btn_ok_Click(object sender, EventArgs e)
    2.         {
    3.             Bitmap bmnew = (Bitmap)pictureBox1.Image.Clone();
    4.             img = bmnew;
    5.             bunch_size = trackBar1.Value;
    6.             pictureBox1.Image = bunch(img, bunch_size);
    7.         }
    8.  
    9.  
    10.         public static Bitmap bunch(Bitmap bmp, int bunch_size)
    11.         {
    12.             for (int i = 0; i < bmp.Height; i++)
    13.             {
    14.                 for(int j=0;j< bmp.Width;j++)
    15.                 {
    16.                     int r = bmp.GetPixel(j,i).R;
    17.                     r = (r/bunch_size) * bunch_size;
    18.  
    19.                     int g = bmp.GetPixel(j, i).G;
    20.                     g = (g / bunch_size) * bunch_size;
    21.  
    22.                     int b = bmp.GetPixel(j, i).B;
    23.                     b = (b / bunch_size) * bunch_size;
    24.  
    25.                     bmp.SetPixel(j, i, Color.FromArgb(r, g, b));
    26.                 }
    27.             }
    28.  
    29.             return bmp;
    30.         }

    Bác xem đúng chưa nhé :<, em còn non và xanh )
    Đã được chỉnh sửa lần cuối bởi hidetran : 22-10-2011 lúc 11:11 PM.

  6. #6
    Ngày gia nhập
    01 2011
    Nơi ở
    Hà Nội
    Bài viết
    188

    Mặc định Truyền file ảnh giữa các Form như thế nào ?

    Thật ngại quá! mình không học môn Xử lý ảnh nên không rõ lắm.
    Nhưng xem cái code của bạn thì:
    Visual C# Code:
    1. r = (r/bunch_size) * bunch_size;
    Có thay đổi j sau khi bunch không? vì a=(a/b)*b
    Sau khi đọc tài liệu: http://www.scribd.com/doc/65775895/23/Bo-c%E1%BB%A5m
    thì mình thấy nên sửa thành:
    Visual C# Code:
    1. r = Math.Round((r/bunch_size), 0)*bunch_size;
    Chém gió tý!

    ah, bạn nên đưa code vào tag cho đẹp: http://diendan.congdongcviet.com/showthread.php?t=6131

  7. #7
    Ngày gia nhập
    05 2009
    Bài viết
    44

    À, công thức đó là lấy giá trị r chia lấy nguyên với bunch_size rồi nhấn bunch_size mà

    Mọi thứ ok và xong xuông rồi nhé,

    Bi giờ còn vấn đề hiển thị ảnh trên picture bõ sao cho đẹp thôi !

    Nó cứ giữ nguyên size thì to quá, chọn thuộc tính zoom thì lại không nằm giữa form khi thu nhỏ, chọn CenterImage thì lại full size

    Túm lại là tùm lum hết cả :p

    Sẵn tiện gửi mọi người xem cái project làm xong, chưa có action cho vài nút menu và btn save nhé :d
    Attached Files Attached Files

  8. #8
    Ngày gia nhập
    12 2009
    Bài viết
    147

    bạn ơi cho mình hỏi cái khúc này

    Code:
    private void button3_Click(object sender, EventArgs e)
            {
                fr0.pictureBox1.Image = pictureBox2.Image;            
                fr0.Show();
                this.Close();
            }
    pictureBox1 của bạn ở đâu vậy, mình viết lại giống bạn mà không hiểu sao qua form2 nó không thấy được pictureBox1 hic

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

  1. cách truyền tham số khi gọi form được tạo từ file dll
    Gửi bởi tuanngocpt trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 19-06-2012, 03:48 PM
  2. Cách truyền biến giữa các Form trong MFC như thế nào?
    Gửi bởi babamama trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 2
    Bài viết cuối: 03-12-2010, 05:41 PM
  3. Làm thế nào để truyền giá trị của form này sang form khác?
    Gửi bởi minhnhut_1st trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 19-05-2010, 11:30 AM
  4. Truyền dữ liệu giữa các form như thế nào?
    Gửi bởi ocbien06 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 7
    Bài viết cuối: 28-03-2010, 12:26 PM
  5. Truyền dữ liệu giữa 2 form trên C# như thế nào?
    Gửi bởi dongvanhoatk37 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 17-05-2009, 08:19 PM

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