• “熊猫视图”.Net图形控件功能介绍 [十二]:图像图元


    “熊猫视图”.Net图形控件功能介绍 [十三]:图元操作


    “熊猫视图”控件允许加载和显示图像资源,支持常用的图像格式,使用代码如下:

    1. //定义图像对象
    2. PandaView.Picture p = new PandaView.Picture();
    3. //图像位置
    4. p.Points = new[] { new PointF(400, 400) };
    5. //是否跟随视图缩放
    6. p.AllowZoom = true;
    7. //是否固定尺寸
    8. p.FixSize = true;
    9. //是否显示边框
    10. p.Edge = true;
    11. //边框颜色
    12. p.EdgePen = Pens.Blue;
    13. //图像源
    14. p.Image = Image.FromFile(@"d:\演示图\1.jpg");
    15. //建立图像对象
    16. p.Creat(pandaView1);

    运行效果如下: 

    当设置 AllowZoom属性为false, 并且把左上角的文字对齐图像左上角时,当视图缩放时图像大小保持不变,通常用于图像标注用途。效果如下:

    属性 FixSize 用于设置图像显示时尺寸是否使用自身大小,还是使用用户指定的大小。此属性设置为false时,将使用用户传入的第2个点位值,即右下角位置。修改位置参数为

    1. //图像位置
    2. p.Points = new[] { new PointF(400, 400), new PointF(600, 600) };
    3. //是否跟随视图缩放
    4. p.AllowZoom = true;

    即图像左上角定位在(400,400),右下角定位在(600,600),显示尺寸为200x200像素。

    演示效果如下: 

    除了在代码中加载图片,“熊猫视图”控件还支持从资源管理器中鼠标拖拽加载图片的功能。

    1. //启用拖拽
    2. pandaView1.AllowDrop = true;

    演示效果如下:

     在鼠标拖拽事件过程中,“熊猫视图”控件提供了两个用户事件,分别是定制拖拽时的图片边框样式,和拖拽后的图像边框样式。

    如下代码演示上述两个定制功能:

    1、定制拖拽图片时的边框样式为金色虚线粗边框

    2、定制拖拽图片后的边框样式为红色虚线粗边框

    1. //定制鼠标拖拽时图像边框
    2. private void pandaView1_DragPictureOver(object sender, PandaView.DragPictureOverEventArgs e)
    3. {
    4. //获取边框绘制画笔
    5. Pen p = e.Pen;
    6. //定义边框颜色为金色
    7. p.Color = Color.Gold;
    8. //定义边框宽度为5
    9. p.Width = 5;
    10. //定义边框样式为虚线
    11. p.DashStyle = DashStyle.Dot;
    12. }
    13. //定制鼠标释放时图像边框
    14. private void pandaView1_DragPicture(object sender, PandaView.DragPictureEventArgs e)
    15. {
    16. PandaView.Picture p = e.DragPicture[0];
    17. //显示边框
    18. p.Edge = true;
    19. //定义边框颜色为红色
    20. p.EdgePen.Color = Color.Red;
    21. //定义边框宽度为5
    22. p.EdgePen.Width = 5;
    23. //定义边框样式为虚线
    24. p.EdgePen.DashStyle = DashStyle.Dot;
    25. }

     运行效果如下:

    自由定制功能是本控件设计宗旨之一。

  • 相关阅读:
    数据建模中利用3σ剔除异常值进行数据清洗
    pywinauto的menu_select
    大学生HTML期末作业, JavaScript期末大作业
    因子特征工程:alphalens库深度解析
    正则表达式,日期选择器时间限制,报错原因
    刷题之莲子的软件工程学和机械动力学以及物理热力学
    Day32力扣打卡
    华为云云耀云服务器L实例评测|SpringCloud相关组件——nacos和sentinel的安装和配置 & 运行内存情况 & 服务器被非法登陆尝试的解决
    Linux命令详解-find命令(一)
    【数据结构】时间、空间复杂度
  • 原文地址:https://blog.csdn.net/mosangbike/article/details/126771523