Nodes.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. using CommonLang.Geometry;
  2. using CommonLang.Geometry.SceneGraph2D;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. namespace CommonFroms.SceneGraph2D
  9. {
  10. //----------------------------------------------------------------------------------------------------------------------------------
  11. public class ImageNode : DisplayNode
  12. {
  13. private Bitmap _dimg;
  14. private Vector2 _size;
  15. public Vector2 Size
  16. {
  17. get { return _size; }
  18. }
  19. public Bitmap Image
  20. {
  21. get { return _dimg; }
  22. }
  23. public ImageNode(System.Drawing.Image src)
  24. {
  25. _dimg = ImageUtils.ImageToBitmap(src);
  26. _size = new Vector2(_dimg.Width, _dimg.Height);
  27. }
  28. public Color GetPixel(int x, int y)
  29. {
  30. return _dimg.GetPixel(x, y);
  31. }
  32. protected override void OnDrawBegin(IGraphics g)
  33. {
  34. base.OnDrawBegin(g);
  35. var gfx = (g as Win32Graphics).gfx;
  36. gfx.DrawImage(_dimg, -_dimg.Width / 2f, -_dimg.Height / 2f);
  37. }
  38. public static ImageNode CreateImage(string file)
  39. {
  40. System.Drawing.Image image = System.Drawing.Image.FromFile(file);
  41. var ret = new ImageNode(image);
  42. return ret;
  43. }
  44. //----------------------------------------------------------------------------------------------------------------------------------
  45. }
  46. //----------------------------------------------------------------------------------------------------------------------------------
  47. }