• 无底图雷达回波生成


    最近,单位上遇到一个问题,要将本站雷达回波图动态地叠加到另一个系统上。但是,把图片直接加上且在HTML网页上设计为透明,还是存在一个阴影,因此本人用C#开发了一个无底图雷达回波处理软件。

    1、本软件需要先将黑底雷达回波图片背景变为白色,然后再将白色背景变为透明。直接调用黑色背景的雷达回波图实现不了!

    代码如下:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.IO;
    using System.Timers;
    
    namespace 透明图片
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                
    
            }
    
            private void SavePicture()
            {
                //获取日期及时间
                System.DateTime currentTime = new System.DateTime();
                currentTime = System.DateTime.Now;
                int year = currentTime.Year;
                int mounth = currentTime.Month;
                int day = currentTime.Day;
                int hour = currentTime.Hour;
                int minute = currentTime.Minute;
                int second = currentTime.Second;
    
                //以下4行代码无用
                string mon = "";
                string dayy = "";
               mon= mounth<10? "0" + mounth.ToString(): mounth.ToString();
               dayy=day<10 ? "0" + day.ToString(): day.ToString();
                
                label1.Text = string.Format("{0}年{1}月{2}日{3}时{4}分{5}秒", year, mon, dayy, hour, minute, second);
                //获取整个文件夹下路径
                string[] pathAll = Directory.GetFiles(string.Format("E:\test\Picture\{0}{1}{2}", year, mounth, dayy));
    
                //每次都新建一个文件夹,如果名字相同的,则不新建了!
                string activeDir = string.Format(@"E:	estsavPicture{0}{1}{2}", year, mon, dayy);
                string newPath = System.IO.Path.Combine(activeDir);
                System.IO.Directory.CreateDirectory(newPath);
    
                int i = 0;
                //循环遍历图片
                for (i = 0; i < pathAll.Length; i++)
                {
                    //获取文件名字
                    string fullPath = pathAll[i];//pathAll[i]="E:\test\Picture\{0}{1}{2}\xxx.png
                    string filename = System.IO.Path.GetFileName(fullPath);//文件名 “xxx.png”
    
                    Image image;
                    string path = pathAll[i];
                    image = Image.FromFile(path);
                    Bitmap bitmap = new Bitmap(image);
                    bitmap.MakeTransparent(Color.Transparent);
                    if (pathAll[i].IndexOf("雨量") > -1)//如果包含雨量
                    {
                        bitmap.Save(string.Format("E:\test\savPicture\{0}{1}{2}\{3}", year, mon, dayy, filename));
                        textBox1.AppendText(string.Format("{0}年{1}月{2}日{3}时{4}分{5}秒,雨量_{0}{1}{2}0{6}00-0{3}00.png生成成功!-----第{6}张图
    ", year, mon, dayy, hour, minute, second, i+1));
                    }
                     else
                    {
                        
    
                        bitmap.Save(string.Format("E:\test\savPicture\{0}{1}{2}\{3}", year, mon, dayy,filename));
                        textBox1.AppendText(string.Format("{0}年{1}月{2}日{3}时{4}分{5}秒,基本粒子_{0}{1}{2}{3}{4}{5}.png生成成功!-----第{6}张图
    ", year, mon, dayy, hour, minute, second, i+1));
                    }
                   
                   
                }
            }
            //添加计时器
            private void timer1_Tick(object sender, EventArgs e)
            {
                SavePicture();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                SavePicture();
               
    
            }
        }
       
        }


    没处理过的雷达图片叠加在地图上,会把方形背景也叠加上去,如图所示:

    该软件处理完毕后的无底图回波叠加上去如下图所示:

    软件运行界面如下:能每隔10分钟读取一次数据,将新的雷达回拨图片处理完毕,也可以点击“开始出图”按钮,立即处理一次。

  • 相关阅读:
    Object C学习笔记25-文件管理(一)
    实施项目--为什么开发人员一直在抱怨需求变动
    Git.Framework 框架随手记--准备工作
    一网打尽!2018网络安全事件最全的盘点
    林纳斯·托瓦兹和Linux行为准则:揭穿7个谬论
    LinkedList源码解析
    四种List实现类的对比总结
    HashMap源码解析
    volatile
    Java内存模型与共享变量可见性
  • 原文地址:https://www.cnblogs.com/xiaoyaohan/p/10155772.html
Copyright © 2020-2023  润新知