關於安碩

【服務項目】

 自動化設備控制系統及機構設計
 PC Based 控制系統設計
 PLC 及 HMI 程式設計
 多軸運動控制
 機器視覺檢測系統設計
 資料收集及遠端監控
 設備電控電路設計及控制盤體配線
 機械手臂整合應用
 舊有設備整理及改善
 客製化程式開發
 IPC / 軸控模組 / IO 模組 代理

系統整合外包服務 E-mail: ling.ryan@gmail.com 歡迎來信連絡

2019年11月22日 星期五

[筆記] 產生 Wafer Map 圖像


private void GenerateBitmap(Size MapSize, int[,] BinMap)
        {
 
            Bitmap Bmap = new Bitmap(MapSize.Width, MapSize.Height);
            Graphics g = Graphics.FromImage(Bmap); // 開放 Draw 權限
            g.Clear(Color.White);
 
            float MapWidth = (float)Bmap.Width;
            float MapHeight = (float)Bmap.Height;
 
            int DieCntX = BinMap.GetLength(0);
            int DieCntY = BinMap.GetLength(1);
 
            float DieWidth = MapWidth / DieCntX;
            float DieHeight = MapHeight / DieCntY;
 
 
            //上色
            SolidBrush myBrush = new SolidBrush(Color.Blue);
 
            for (int y = 0x00; y < DieCntY; y++)
            {
                for (int x = 0x00; x < DieCntX; x++)
                {
 
                    myBrush.Color = ColorTable.GetColor(BinMap[x, y]);
                    g.FillRectangle(myBrush, DieWidth * x, DieHeight * y, DieWidth, DieHeight);
                }
            }
 
            //畫線
            int XLineCnt = DieCntX - 1;
            int YLineCnt = DieCntY - 1;
 
            Pen pen = new Pen(Color.Black, 2);
 
            for (int idx = 0x00; idx <= XLineCnt; idx++)
            {
                g.DrawLine(pen, DieWidth * (idx + 1), 0, DieWidth * (idx + 1), MapHeight);
            }
 
            for (int idx = 0x00; idx <= YLineCnt; idx++)
            {
                g.DrawLine(pen, 0, DieHeight * (idx + 1), MapWidth, DieHeight * (idx + 1));
            }
 
            pictureBox1.Image = Bmap; // 顯示
            //Bmap.Save("d:\\aa.bmp", System.Drawing.Imaging.ImageFormat.Bmp); //存檔
        }

沒有留言:

張貼留言