Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 5 của 5
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Vấn đề vẽ ảnh trong C#

    Các anh cho em hỏi trong C# mình muốn vẽ 1 tấm ảnh mà không có nền bằng cách nào?Ví dụ vẽ 1 thằng lính đang đi trên đồng cỏ chẳng hạn,làm sao để nền của bức ảnh thằng lính là đồng cỏ chứ không phải là màu trắng!!!!Cảm ơn các anh đã quan tâm vấn đề của em trước nhé!!!!!

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Mình không hiểu rõ lắm câu hỏi của bạn, bạn xem xem cách nào đúng ý bạn nhe, mình mới học C# nên chưa rành lắm đâu, chỉ góp tý chút thui:
    1. Bạn có thể vẽ ảnh của thằng lính cùng với nền cỏ rùi vẽ lên form
    2. Bạn đặt thuộc tính background của form là cỏ rùi vẽ lính lên
    3. Bạn có thể đặt ra 1 Graphics từ hình chỉ có cỏ thui, sau đó vẽ thêm hình lính vào graphics, sau đó đặt lên form.

    Mã:
              imgGrass = Image.FromFile("path_to_Image"); //biến này bạn đặt ở class nhe.
              Image imgSoldier = Image.FromFile("path_to_Image");
              Graphics objGrap = Graphics.FromImage(grass);
              
              Rectangle recBound = new Rectangle(//ban dat toa do o day, imgSoldier.Width, imgSoldier.Height);
              objGrap.DrawImage(imgSoldier, imgGrass.Width / 2, imgGrass.Height / 2);
              objGrap.Dispose();
    rùi trong event Paint của form, bạn thêm 2 dòng sau để vẽ ra form:

    Mã:
              e.Graphics.DrawImage(imgGrass, this.ClientRectangle.X, this.ClientRectangle.Y);
               e.Graphics.Dispose();
    Hy vọng giúp được bạn

  3. #3
    Cảm ơn các bạn nhiều mình sẽ thử lại.Có gì sẽ hỏi nữa mong các bạn sẽ giúp đỡ.Ý của mình trong câu hỏi trên là tạo 1 thằng lính di chuyển mà nền thì giữ nguyên,bởi vì bức ảnh mà mình có là hình thằng lính trên nền trắng nên khi di chuyển trên nền đồng cỏ thì là hình chữ nhật nền trắng trong đó có thằng lính nhìn như là thằng lính bị bỏ trong khung màu trắng mà di chuyển vậy nên bây giờ mình muốn bỏ nền trắng đó đi,làm cho thằng lính dù di chuyển đến chỗ nào trên nền đồng cỏ thì cũng y như trong game vậy!!!

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi vinhhy
    Cảm ơn các bạn nhiều mình sẽ thử lại.Có gì sẽ hỏi nữa mong các bạn sẽ giúp đỡ.Ý của mình trong câu hỏi trên là tạo 1 thằng lính di chuyển mà nền thì giữ nguyên,bởi vì bức ảnh mà mình có là hình thằng lính trên nền trắng nên khi di chuyển trên nền đồng cỏ thì là hình chữ nhật nền trắng trong đó có thằng lính nhìn như là thằng lính bị bỏ trong khung màu trắng mà di chuyển vậy nên bây giờ mình muốn bỏ nền trắng đó đi,làm cho thằng lính dù di chuyển đến chỗ nào trên nền đồng cỏ thì cũng y như trong game vậy!!!
    Bạn xem cái ví dụ của mình đi, nó sẽ làm transparent màu trắng đó.

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Giả sử ảnh bạn cần vẽ được lưu vào biến image và có màu nền là màu trắng :


    Mã:
    using System.Drawing;using System.Drawing.Imaging;
    Mã:
    ImageAttributes attr = new ImageAttributes();attr.SetColorKey(Color.White, Color.White);g.DrawImage(image, new Rectangle(0, 0, image.Width, image.Height), 0, 0, image.Width, image.Height, GraphicsUnit.Pixel, attr);

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •