public void GenerateColorMapping() { int channelNum = m_config.GetChannelNum(); for (int i = 0; i < channelNum; i++) { CHAN_ID id = (CHAN_ID)Enum.ToObject(typeof(CHAN_ID), i); Color colorReference = m_config.GetChannelColorReference(id); CImage.CreateColorMapping(colorReference, ref m_colorMappingArr[i]); } }
private void UpdateApdImageDataHandler() { int xSampleCountPerLine = m_config.GetScanXPoints(); int scanRows = m_config.GetScanStrategy() == SCAN_STRATEGY.Z_BIDIRECTION ? m_params.ScanRows * 2 : m_params.ScanRows; int index; while (m_scanning) { if (m_scanData.ApdConvertQueueSize() == 0) { continue; } if (!m_scanData.DequeueApdConvertData(out ApdSampleData convertData)) { Logger.Info(string.Format("dequeue convert data failed.")); continue; } byte[] bgrData = m_scanData.ScanImage.BGRData[convertData.ChannelIndex]; byte[,] mapping = m_params.ColorMappingArr[convertData.ChannelIndex]; index = xSampleCountPerLine * convertData.Line; Array.Copy(convertData.NSamples, 0, m_scanData.ScanImage.Data[convertData.ChannelIndex], index, xSampleCountPerLine); index = index * 3; CImage.IntToBGR24(convertData.NSamples, ref bgrData, index, mapping); if (m_scanData.GetImageLine() < convertData.Line || m_scanData.GetImageFrame() < convertData.Frame) { m_scanData.SetImageFrame(convertData.Frame); m_scanData.SetImageLine(convertData.Line); } if (convertData.Line + 1 == scanRows) { Logger.Info(string.Format("channel[{0}] update image data: frame[{1}], line[{2}].", convertData.ChannelIndex, m_scanData.ScanImage.Frame, m_scanData.ScanImage.Line)); } } Logger.Info(string.Format("scan task[{0}|{1}] stop, finish update image data.", m_taskId, m_taskName)); }