public Image GetImage(AnalyseRecord record) { Image imgRet = null; if (Task != null && record != null) { if (record.Image != null) { // 不要与图片控件用同一个图片对象 // 图片控件上的图片可以自己回收 imgRet = record.Image.Clone() as Image; } else { // string fileName = m_FileAccess.GetFileName(record.PicId); record.Image = m_FileAccess.GetImage(record.PicId); if (record.Image != null) { imgRet = record.Image.Clone() as Image; Framework.Container.Instance.CacheManager.Register(record); } } } return(imgRet); }
private void ShowFullImage(AnalyseRecord record) { Image imgFull = null; if (pictureEdit1.Image != null) { Image image = pictureEdit1.Image; pictureEdit1.Image = null; image.Dispose(); } if (record != null && record.Image != null) { // 不要与图片控件用同一个图片对象 // 图片控件上的图片可以自己回收 imgFull = ResultPageViewModel.DecorateFullImage(record); } pictureEdit1.Image = imgFull; pictureEdit1.Properties.SizeMode = DevExpress.XtraEditors.Controls.PictureSizeMode.Clip; if (imgFull != null) { int x_rate = pictureEdit1.Width * 100 / imgFull.Width; int y_rate = pictureEdit1.Height * 100 / imgFull.Height; pictureEdit1.Properties.ZoomPercent = Math.Min(x_rate, y_rate); } }
//internal AnalyseRecord GetNextVehicleByID(string vehicleid) //{ // if (m_Records != null && m_Records.Count > 0) // { // int id = m_Records.FindIndex(it => it.Id == vehicleid); // if (id + 1 < m_Records.Count) // return m_Records[id + 1]; // else // return null; // } // else // return null; //} //internal AnalyseRecord GetPrivVehicleByID(string vehicleid) //{ // if (m_Records != null && m_Records.Count > 0) // { // int id = m_Records.FindIndex(it => it.Id == vehicleid); // if (id > 0) // return m_Records[id - 1]; // else // return null; // } // else // return null; //} //internal bool IsCanNext(string vehicleid) //{ // if (m_Records != null && m_Records.Count > 0) // { // int id = m_Records.FindIndex(it => it.Id == vehicleid); // return (id + 1 < m_Records.Count); // } // else // return false; //} //internal bool IsCanPriv(string vehicleid) //{ // if (m_Records != null && m_Records.Count > 0) // { // int id = m_Records.FindIndex(it => it.Id == vehicleid); // return (id >= 0); // } // else // return false; //} #endregion #region Private helper functions //private void InitTable() //{ // m_DTAnalyseResults = new DataTable("AnalyseRecords"); // DataColumn columnId = m_DTAnalyseResults.Columns.Add("Id"); // //m_DTAnalyseResults.PrimaryKey = new DataColumn[] { columnId }; // m_DTAnalyseResults.Columns.Add("WatchTime"); // m_DTAnalyseResults.Columns.Add("FileName"); // m_DTAnalyseResults.Columns.Add("FullName"); // m_DTAnalyseResults.Columns.Add("PlateNumber"); // m_DTAnalyseResults.Columns.Add("PlateNumberReliability"); // m_DTAnalyseResults.Columns.Add("VehicleType", typeof(VehiclePropertyInfo)); // m_DTAnalyseResults.Columns.Add("DetailVehicleType", typeof(VehiclePropertyInfo)); // m_DTAnalyseResults.Columns.Add("Manufacturer"); // m_DTAnalyseResults.Columns.Add("ManufacturerReliability"); // m_DTAnalyseResults.Columns.Add("Brand", typeof(VehiclePropertyInfo)); // m_DTAnalyseResults.Columns.Add("Model", typeof(VehiclePropertyInfo)); // m_DTAnalyseResults.Columns.Add("VehicleColor", typeof(VehiclePropertyInfo)); // m_DTAnalyseResults.Columns.Add("PlateType", typeof(VehiclePropertyInfo)); // m_DTAnalyseResults.Columns.Add("PlateColor", typeof(VehiclePropertyInfo)); // m_DTAnalyseResults.Columns.Add("DriverBeltWearing", typeof(VehiclePropertyInfo)); // m_DTAnalyseResults.Columns.Add("CoDriverBeltWearing", typeof(VehiclePropertyInfo)); // m_DTAnalyseResults.Columns.Add("DriverPhoneCall", typeof(VehiclePropertyInfo)); // m_DTAnalyseResults.Columns.Add("DriverShielding", typeof(VehiclePropertyInfo)); // m_DTAnalyseResults.Columns.Add("CoDriverShielding", typeof(VehiclePropertyInfo)); // m_DTAnalyseResults.Columns.Add("CompareSimilarity", typeof(uint)); // m_DTAnalyseResults.Columns.Add("AnalyseRecord", typeof(AnalyseRecord)); // m_DTSummary = new DataTable("AnalyseRecord"); // m_DTSummary.Columns.Add("Name"); // m_DTSummary.Columns.Add("Value"); // // this.m_DTAnalyseResultsExport // m_DTAnalyseResultsExport = new DataTable("AnalyseRecords4Export"); // columnId = m_DTAnalyseResultsExport.Columns.Add("Id"); // //m_DTAnalyseResultsExport.PrimaryKey = new DataColumn[] { columnId }; // m_DTAnalyseResultsExport.Columns.Add("WatchTime"); // m_DTAnalyseResultsExport.Columns.Add("FileName"); // m_DTAnalyseResultsExport.Columns.Add("FullName"); // m_DTAnalyseResultsExport.Columns.Add("PlateNumber"); // m_DTAnalyseResultsExport.Columns.Add("PlateNumberReliability"); // m_DTAnalyseResultsExport.Columns.Add("VehicleType", typeof(VehiclePropertyInfo)); // m_DTAnalyseResultsExport.Columns.Add("DetailVehicleType", typeof(VehiclePropertyInfo)); // m_DTAnalyseResultsExport.Columns.Add("Manufacturer"); // m_DTAnalyseResultsExport.Columns.Add("ManufacturerReliability"); // m_DTAnalyseResultsExport.Columns.Add("Brand", typeof(VehiclePropertyInfo)); // m_DTAnalyseResultsExport.Columns.Add("Model", typeof(VehiclePropertyInfo)); // m_DTAnalyseResultsExport.Columns.Add("ModelId"); // m_DTAnalyseResultsExport.Columns.Add("VehicleColor", typeof(VehiclePropertyInfo)); // m_DTAnalyseResultsExport.Columns.Add("PlateType", typeof(VehiclePropertyInfo)); // m_DTAnalyseResultsExport.Columns.Add("PlateColor", typeof(VehiclePropertyInfo)); // m_DTAnalyseResultsExport.Columns.Add("DriverBeltWearing", typeof(VehiclePropertyInfo)); // m_DTAnalyseResultsExport.Columns.Add("CoDriverBeltWearing", typeof(VehiclePropertyInfo)); // m_DTAnalyseResultsExport.Columns.Add("DriverPhoneCall", typeof(VehiclePropertyInfo)); // m_DTAnalyseResultsExport.Columns.Add("DriverShielding", typeof(VehiclePropertyInfo)); // m_DTAnalyseResultsExport.Columns.Add("CoDriverShielding", typeof(VehiclePropertyInfo)); // m_DTAnalyseResultsExport.Columns.Add("CompareSimilarity", typeof(uint)); // m_DTAnalyseResultsExport.Columns.Add("AnalyseRecord", typeof(AnalyseRecord)); //} //private void UpdateSummaryTable() //{ // m_DTSummary.Rows.Clear(); // if (m_SelectedRecord != null) // { // string plateNumber = GetPlateNumber(m_SelectedRecord); // string vehicleColor = string.Empty, plateColor = string.Empty; // GetVehicleColor(m_SelectedRecord, ref vehicleColor, ref plateColor); // m_DTSummary.Rows.Add(new object[] { "编号", m_SelectedRecord.Id }); // m_DTSummary.Rows.Add(new object[] { "过车时间", m_SelectedRecord.WatchTime.ToString(Constant.DATETIME_FORMAT) }); // m_DTSummary.Rows.Add(new object[] { "车牌号", plateNumber }); // m_DTSummary.Rows.Add(new object[] { "车型", m_SelectedRecord.VehicleTypeInfo == null ? "未识别" : m_SelectedRecord.VehicleTypeInfo.Name }); // m_DTSummary.Rows.Add(new object[] { "细分车型", m_SelectedRecord.DetailVehicleTypeInfo == null ? "未识别" : m_SelectedRecord.DetailVehicleTypeInfo.Name }); // m_DTSummary.Rows.Add(new object[] { "车身颜色", vehicleColor }); // VehiclePropertyInfo brand, model; // GetVehicleBrandName(m_SelectedRecord, out brand, out model); // m_DTSummary.Rows.Add(new object[] { "车品牌", brand }); // m_DTSummary.Rows.Add(new object[] { "车型号", model }); // m_DTSummary.Rows.Add(new object[] { "车牌颜色", plateColor }); // m_DTSummary.Rows.Add(new object[] { "主驾驶是否系安全带", m_SelectedRecord.DriverWearingSafeBelt }); // m_DTSummary.Rows.Add(new object[] { "副驾驶是否系安全带", m_SelectedRecord.CoDriverWearingSafeBelt }); // if (Framework.Environment.PhoneCallFeature) // { // m_DTSummary.Rows.Add(new object[] { "主驾驶是否打手机", m_SelectedRecord.DriverPhoneCalling }); // } // m_DTSummary.Rows.Add(new object[] { "主驾驶是否有遮阳板", m_SelectedRecord.DriverSunlightShield }); // m_DTSummary.Rows.Add(new object[] { "副驾驶是否有遮阳板", m_SelectedRecord.CoDriverSunlightShield }); // m_DTSummary.Rows.Add(new object[] { "文件名", Path.GetFileName(m_SelectedRecord.PicPath) }); // m_DTSummary.Rows.Add(new object[] { "文件路径", m_SelectedRecord.PicPath }); // } //} //private string GetDriverWearingSafeBelt(AnalyseRecord analyseRecord) //{ // string sRet = "未识别"; // if (analyseRecord != null && analyseRecord.DriverWearingSafeBelt != null) // { // if (analyseRecord.DriverWearingSafeBelt.ID != 3) // { // sRet = analyseRecord.DriverWearingSafeBelt.Name; // } // } // return sRet; //} private string GetPlateNumber(AnalyseRecord analyseRecord) { string plateNumber = string.Empty; if (analyseRecord != null) { plateNumber = analyseRecord.PlateNumber; if (analyseRecord.ErrorCode == 0) { if (string.Compare(analyseRecord.PlateNumber, "11111111", true) == 0) { plateNumber = "无牌车"; } if (string.Compare(analyseRecord.PlateNumber, "22222222", true) == 0) { plateNumber = "两轮车"; } } else if (analyseRecord.ErrorCode == -2) { plateNumber = "未识别"; } else { plateNumber = "图片错误"; } } return(plateNumber); }
//private void GetVehicleBrandName(AnalyseRecord record, ref string brand, ref string model) //{ // brand = "未识别" ; // model = "未识别" ; // if (record.BrandInfo != null) // { // model = record.BrandInfo.Name; // if (record.ParentBrandInfo != null) // { // brand = record.ParentBrandInfo.Name; // } // else // { // brand = string.Empty; // } // } //} private void GetVehicleBrandName(AnalyseRecord record, out VehiclePropertyInfo brand, out VehiclePropertyInfo model) { brand = Constant.PropertyInfo_UNKNOWN; model = Constant.PropertyInfo_UNKNOWN; if (record.BrandInfo != null) { if (record.ParentBrandInfo != null) { if (record.ParentBrandInfo.ID == 999) { // 被归到其它车厂商的车, 车厂家设置成与车型一样 brand = model = record.BrandInfo; } else { brand = record.ParentBrandInfo; model = record.BrandInfo; } } else { // brand = Constant.PropertyInfo_UNKNOWN; brand = model = record.BrandInfo; } } }
public Image GetImage(AnalyseRecord record) { Image imgRet = null; if (record != null) { if (record.Image != null) { // 不要与图片控件用同一个图片对象 // 图片控件上的图片可以自己回收 imgRet = record.Image.Clone() as Image; } else { // string fileName = m_FileAccess.GetFileName(record.PicId); try { //record.Image = m_FileAccess.GetImage(record.PicPath); record.Image = AppUtil.Common.Utils.GetImage(record.PicPath, Framework.Environment.URLEncodingType); } catch (Exception ex) { MyLog4Net.Container.Instance.Log.Error(string.Format("获取图片 {0} 出错", record.PicPath), ex); } if (record.Image != null) { imgRet = record.Image.Clone() as Image; Framework.Container.Instance.CacheManager.Register(record); } } } return(imgRet); }
public static Image DecorateFullImage(AnalyseRecord record) { Image imgFull = new Bitmap(record.Image); Graphics g = Graphics.FromImage(imgFull); Rectangle rect; if (Framework.Environment.DrawPlateRect && (rect = GetDecoRectangle(imgFull, record.PlateRegion)) != Rectangle.Empty) { g.DrawRectangle(new Pen(new SolidBrush(Color.Red), 3), rect); } if (Framework.Environment.DrawVehicleRect && (rect = GetDecoRectangle(imgFull, record.VehicleRegion)) != Rectangle.Empty) { g.DrawRectangle(new Pen(new SolidBrush(Color.Purple), 4), rect); } if (Framework.Environment.DrawAILabelRect) { foreach (VehicleAnnualInspectionLabel item in record.AILabel) { if ((rect = GetDecoRectangle(imgFull, item.AILabelRect)) != Rectangle.Empty) { g.DrawRectangle(new Pen(new SolidBrush(Color.Yellow), 2), rect); } } } g.Dispose(); return(imgFull); }
private void ShowDriverImages(AnalyseRecord record) { if (Framework.Environment.ShowPeopleImg) { ShowDriverImage(picEditDriver, record, record.DriverRegion); ShowDriverImage(picEditCoDriver, record, record.CoDriverRegion); } }
internal ViewResultImageViewModel(List <AnalyseRecord> records, int index) { m_Records = records; m_PageInfo = new PageInfo(1, records.Count, index); m_PageInfo.SelectedPageNumberChanged += new EventHandler(PageInfo_SelectedPageNumberChanged); InitDataTable(); m_SelectedRecord = m_Records[m_PageInfo.PageIndex]; UpdateSummaryTable(); }
private void UpdateUI() { AnalyseRecord record = m_ViewModel.SelectedAnalyseRecord; if (record != null) { new System.Threading.Thread(thDoUpdateImage).Start(record); } gridControl2.DataSource = m_ViewModel.DTSummary; }
private Image CutVehicleImage(AnalyseRecord record) { Image image = m_ViewModel.GetImage(record); // Image.FromFile(record.PicId); Rectangle cutRect = new Rectangle(); if (image != null && record.PlateRegion != Rectangle.Empty) { cutRect = record.PlateRegion; } else if (image != null && record.VehicleRegion != Rectangle.Empty) { cutRect = record.VehicleRegion; } if (image != null && cutRect != Rectangle.Empty) { int xOffset1 = 10, xOffset2 = 10, yOffset1 = 10, yOffset2 = 10; if (cutRect.X < 10) { xOffset1 = cutRect.X; } if (cutRect.Y < 10) { yOffset1 = cutRect.Y; } int temp = image.Width - cutRect.X - cutRect.Width; if (temp < 10) { xOffset2 = temp; } temp = image.Height - cutRect.Y - cutRect.Height; if (temp < 10) { yOffset2 = temp; } int Height = cutRect.Height + yOffset1 + yOffset2; int Width = cutRect.Width + xOffset1 + xOffset2; Rectangle rect = new Rectangle(cutRect.X - xOffset1, cutRect.Y - yOffset1, Width, Height); Bitmap imgPlate = new Bitmap(Width, Height); Graphics g = Graphics.FromImage(imgPlate); g.DrawImage(image, new Rectangle(0, 0, Width, Height), rect, GraphicsUnit.Pixel); g.Dispose(); image = imgPlate; } return(image); }
private void AddResultRow(DataTable dt, AnalyseRecord record) { string plateNumber = GetPlateNumber(record); // string brand = string.Empty, model = string.Empty; // GetVehicleBrandName(record, ref brand, ref model); VehiclePropertyInfo brand, model; GetVehicleBrandName(record, out brand, out model); string vehicleColor = string.Empty, plateColor = string.Empty; GetVehicleColor(record, ref vehicleColor, ref plateColor); dt.Rows.Add(new object[] { record.Id, //id record.WatchTime.ToString(Constant.DATETIME_FORMAT), //WatchTime m_FileAccess.GetFileName(record.PicPath), //FileName record.PicPath, //FullName plateNumber, //PlateNumber record.PlateNumberReliability, //PlateNumberReliability record.VehicleTypeInfo, //VehicleType record.CarTypeConf, //CarTypeConf record.DetailVehicleTypeInfo, //DetailVehicleType record.CarTypeDetailConf, //CarTypeDetailConf brand, //Brand, record.ManufacturerReliability, //ManufacturerReliability model, //Model record.CarLabeDetailConf, //CarLabeDetailConf record.VehicleColorInfo, //VehicleColor record.CarColorConf, //CarColorConf record.PlateTypeInfo, //PlateType record.PlateColorInfo, //PlateColor record.VehicleDirection, //VehicleDirection record.DriverWearingSafeBelt, //DriverBeltWearing record.DriverIsSafebeltConf, //DriverIsSafebeltConf record.DriverSunlightShield, //DriverShielding record.DriverIsSunVisorConf, //DriverIsSunVisorConf record.DriverPhoneCalling, //DriverPhoneCall record.DriverIsPhoneingConf, //DriverIsPhoneingConf record.CoDriverWearingSafeBelt, //CoDriverBeltWearing record.PassengerIsSafebeltCof, //PassengerIsSafebeltCof record.CoDriverSunlightShield, //CoDriverShielding record.PassengerIsSunVisorConf, //PassengerIsSunVisorConf record.ConsoleIsSomething, //ConsoleIsSomething record.ConsoleIsSomethingCof, //ConsoleIsSomethingCof record.IsPendant, //IsPendant record.IsPendantCof, //IsPendantCof record.AILabel.Count, record }); }
private void ShowFullImage(AnalyseRecord record) { //Image imgFull = null; //if( record != null && record.Image != null) //{ // // 不要与图片控件用同一个图片对象 // // 图片控件上的图片可以自己回收 // imgFull = ResultPageViewModel.DecorateFullImage(record); //} //picEditOriginal.Properties.SizeMode = DevExpress.XtraEditors.Controls.PictureSizeMode.Zoom; //picEditOriginal.Image = imgFull; ucResultImage1.ShowImage(record); }
private void gridViewResults_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e) { DataRowView rowView = gridViewResults.GetRow(e.FocusedRowHandle) as DataRowView; AnalyseRecord record = null; if (rowView != null) { record = rowView["AnalyseRecord"] as AnalyseRecord; } m_ViewModel.SelectedAnalyseRecord = record; UpdateUI(); FillupVehicleModels(); }
private void ShowPlateImage(AnalyseRecord record) { Image image = null; if (record != null) { try { image = CutVehicleImage(record); //Image.FromFile(record.PicId); }catch (ArgumentException ex) { } } this.picEditThumb.Properties.SizeMode = DevExpress.XtraEditors.Controls.PictureSizeMode.Zoom; picEditThumb.Image = image; }
private void GetVehicleColor(AnalyseRecord record, ref string vehicleColor, ref string plateColor) { vehicleColor = record.VehicleColorInfo != null ? record.VehicleColorInfo.Name : record.VehicleColor; plateColor = record.PlateColorInfo != null ? record.PlateColorInfo.Name : record.PlateColor; if (string.IsNullOrEmpty(vehicleColor)) { vehicleColor = "未识别"; } if (string.IsNullOrEmpty(plateColor)) { plateColor = "未识别"; } }
void UpdateImage(AnalyseRecord record) { if (InvokeRequired) { this.Invoke(new Action <AnalyseRecord>(UpdateImage), record); } else { Application.DoEvents(); Trace.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss,fff") + " UpdateImage 1"); ShowPlateImage(record); ShowFullImage(record); ShowVehicleStandardImage(record); Trace.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss,fff") + " UpdateImage 2"); } }
private void AddRow(AnalyseRecord record) { m_DT.Rows.Add(new object[] { record.PlatformId, record.TaskId, record.AnalyseType, record.PicId, record.PicPath, record.ErrorCode, record.PlateNumber, record.PlateColor, record.VehicleType, record.DetailVehicleType, record.VehicleColor, record.Manufacturer, record.Type, record }); }
internal void ShowDetails() { int index = 0; AnalyseRecord record = SelectedAnalyseRecord; if (record != null) { index = m_Records.IndexOf(record); } PageInfo pageInfo = new PageInfo(1, m_Records.Count, index); //DetailViewPageInfo.Index = index; //// 用using 在Clear的时候m_EditImageForm 为null m_EditImageForm = new EditImageForm(m_FileAccess, m_Records, index); m_EditImageForm.FormClosed += new FormClosedEventHandler(EditImageForm_FormClosed); m_EditImageForm.ShowDialog(); }
private void AddResultRow(DataTable dt, AnalyseRecord record) { dt.Rows.Add(new object[] { record.Id, m_FileAccess.GetFileName(record.PicId), record.PicId, record.PlateNumber, GetPlateNumberFromOther(m_FileAccess.GetFileName(record.PicId)), record.VehicleTypeInfo, record.DetailVehicleTypeInfo, record.Manufacturer, record.ParentBrandInfo, record.BrandInfo, record.VehicleColorInfo, record.PlateTypeInfo, record.PlateColorInfo, record }); }
private void btnSave_Click(object sender, EventArgs e) { AnalyseRecord record = CurrentRecord; //if (record == null || record.OriginalPic == null) //{ // return; //} string resourcename = ""; string time = ""; foreach (Tuple <PropertyInfo, string> p in this.ucEditImageCtrl.Properties) { object obj = p.Item1.GetValue(record, null); if (p.Item2 == "所属源") { resourcename = obj.ToString(); } if (p.Item2 == "目标时间") { time = obj.ToString(); } } string FileName = resourcename.Replace(".", "_") + "结果" + time.Replace(":", "_").Replace(".", "_").Replace("/", "_") + ".jpg"; // 保存文件 Trace.WriteLine("btnSave_Click, FileName:" + FileName); Bitmap pic = new Bitmap(this.ucEditImageCtrl.OriginalImage.Width, this.ucEditImageCtrl.OriginalImage.Height); Graphics g = Graphics.FromImage(pic); g.DrawImage(this.ucEditImageCtrl.OriginalImage, 0, 0, ucEditImageCtrl.OriginalImage.Width, ucEditImageCtrl.OriginalImage.Height); pic.Save(FileName, ImageFormat.Jpeg); pic.Dispose(); System.IO.FileInfo temp = new System.IO.FileInfo(FileName); int hrItem = (int)DateTime.Now.Ticks; }
private void CopyImages(string fullPath) { if (m_DTAnalyseResults != null && m_DTAnalyseResults.Rows != null) { string fileName; Image image; float progressPerFile = 0.8f / (float)m_DTAnalyseResults.Rows.Count; int i = 0; foreach (DataRow row in m_DTAnalyseResults.Rows) { i++; AnalyseRecord record = row["AnalyseRecord"] as AnalyseRecord; if (record != null) { m_StatusDlg.UpdateStatusText(string.Format("保存图片 {0} ...", record.PicPath)); m_StatusDlg.UpdateProgress(0.2f + progressPerFile * i); try { fileName = m_FileAccess.GetFileName(record.PicPath); fileName = Path.Combine(fullPath, fileName); if (m_FileAccess is LocalFileAccess) { File.Copy(record.PicPath, fileName); } else { image = AppUtil.Common.Utils.GetImage(record.PicPath, Framework.Environment.URLEncodingType); CopyImage(image, fileName); } } catch (Exception ex) { MyLog4Net.Container.Instance.Log.Error(string.Format("导出文件 {0} 出错", record.PicPath), ex); } } } } }
private void ShowVehicle() { int i = 0; for (i = 0; i < Math.Min(24, m_noGroupViewModel.CurrPageRecords.Count); i++) { ucSingleResult r = tableLayoutPanel2.Controls[i] as ucSingleResult; r.Visible = true; AnalyseRecord tmp = m_noGroupViewModel.CurrPageRecords[i]; m_noGroupViewModel.GetThumbImage(tmp); r.SetVehicle(tmp); } for (int j = i; j < 24; j++) { ucSingleResult r = tableLayoutPanel2.Controls[j] as ucSingleResult; r.SetVehicle(null); r.Visible = false; } }
private void gridView1_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e) { DataRowView rowView = gridView1.GetRow(e.FocusedRowHandle) as DataRowView; if (rowView != null) { AnalyseRecord record = rowView["AnalyseRecord"] as AnalyseRecord; Image image = null; if (record != null) { image = CutVehicleImage(record); //Image.FromFile(record.PicId); } this.picEditThumb.Properties.SizeMode = DevExpress.XtraEditors.Controls.PictureSizeMode.Zoom; picEditThumb.Image = image; m_ViewModel.SelectedAnalyseRecord = record; } else { picEditThumb.Image = null; } }
private void ShowDriverImage(PictureEdit picEdit, AnalyseRecord record, Rectangle region) { Image image = null; if (picEdit.Image != null) { Image imageTmp = picEdit.Image; picEdit.Image = null; imageTmp.Dispose(); } if (record != null && record.Image != null) { if (record.ErrorCode == 0 && !region.Equals(Rectangle.Empty)) { image = ClipImage(record.Image, region); } } picEdit.Properties.SizeMode = DevExpress.XtraEditors.Controls.PictureSizeMode.Zoom; picEdit.Image = image; }
public Image GetThumbImage(AnalyseRecord record) { Image imgRet = null; if (record != null) { if (record.ThumbImg != null) { // 不要与图片控件用同一个图片对象 // 图片控件上的图片可以自己回收 imgRet = record.ThumbImg.Clone() as Image; } else { // string fileName = m_FileAccess.GetFileName(record.PicId); try { //Image img = WinFormAppUtil.Common.Utils.GetImage(record.PicPath); //record.ThumbImg = WinFormAppUtil.Common.Utils.CutImage(img, record.VehicleRegion); record.ThumbImg = Framework.Container.Instance.TaskManager.GetThumbImg(record); //record.PlateImg = Framework.Container.Instance.TaskManager.GetPlateImg(record); } catch (Exception ex) { MyLog4Net.Container.Instance.Log.Error(string.Format("获取图片 {0} 出错", record.PicPath), ex); } if (record.ThumbImg != null) { imgRet = record.ThumbImg.Clone() as Image; Framework.Container.Instance.CacheManager.Register(record); } } } return(imgRet); }
internal void ShowImage( AnalyseRecord record) { Image imgFull = null; if (record.Image != null) { // 不要与图片控件用同一个图片对象 // 图片控件上的图片可以自己回收 imgFull = new Bitmap(record.Image); } else { record.Image = AppUtil.Common.Utils.GetImage(record.PicPath, Framework.Environment.URLEncodingType); if (record.Image != null) { imgFull = new Bitmap(record.Image); Framework.Container.Instance.CacheManager.Register(record); } } if (imgFull == null) { return; } if (record.PlateRegion != Rectangle.Empty) { int xOffset1 = 10, xOffset2 = 10, yOffset1 = 10, yOffset2 = 10; if (record.PlateRegion.X < 10) { xOffset1 = record.PlateRegion.X; } if (record.PlateRegion.Y < 10) { yOffset1 = record.PlateRegion.Y; } int temp = imgFull.Width - record.PlateRegion.X - record.PlateRegion.Width; if (temp < 10) { xOffset2 = temp; } temp = imgFull.Height - record.PlateRegion.Y - record.PlateRegion.Height; if (temp < 10) { yOffset2 = temp; } int Height = record.PlateRegion.Height + yOffset1 + yOffset2; int Width = record.PlateRegion.Width + xOffset1 + xOffset2; Rectangle rect = new Rectangle(record.PlateRegion.X - xOffset1, record.PlateRegion.Y - yOffset1, Width, Height); Bitmap imgPlate = new Bitmap(Width, Height); Graphics g = Graphics.FromImage(imgPlate); g.DrawImage(imgFull, new Rectangle(0, 0, Width, Height), rect, GraphicsUnit.Pixel); g.Dispose(); this.picEditThumb.Properties.SizeMode = DevExpress.XtraEditors.Controls.PictureSizeMode.Zoom; this.picEditThumb.Image = imgPlate; g = Graphics.FromImage(imgFull); g.DrawRectangle(new Pen(new SolidBrush(Color.Red), 2), rect); g.Dispose(); } OriginalImage = imgFull; AutoFit(); }
void PageInfo_SelectedPageNumberChanged(object sender, EventArgs e) { m_SelectedRecord = m_Records[m_PageInfo.PageIndex]; UpdateSummaryTable(); }
public void ShowImage(AnalyseRecord record) { m_Record = record; ShowFullImage(m_Record); ShowDriverImages(m_Record); }
private Image CutVehicleImage(AnalyseRecord record) { Image image = m_ViewModel.GetImage(record); // Image.FromFile(record.PicId); if (image != null && record.PlateRegion != Rectangle.Empty) { int width = record.PlateRegion.Width; int height = record.PlateRegion.Height; int x = record.PlateRegion.Left - 4 * width; int y = record.PlateRegion.Bottom - 10 * height; int xOffset1 = 3 * width, xOffset2 = 2 * width, yOffset1 = 4 * height, yOffset2 = 25 * height; if (record.VehicleTypeInfo != null) { if (record.VehicleTypeInfo.ID == 2) { // 中车 yOffset2 = 40 * height; } if (record.VehicleTypeInfo.ID == 3) { yOffset2 = 60 * height; xOffset2 = (int)(4 * width); xOffset1 = 4 * width; } } if (record.PlateRegion.X < xOffset1) { // left xOffset1 = record.PlateRegion.X; } if (record.PlateRegion.Y < yOffset2) { // top yOffset2 = record.PlateRegion.Y; } int temp = image.Width - record.PlateRegion.X - record.PlateRegion.Width; if (temp < xOffset2) { xOffset2 = temp; } temp = image.Height - record.PlateRegion.Y - record.PlateRegion.Height; if (temp < yOffset1) { yOffset1 = temp; } int Height = record.PlateRegion.Height + yOffset1 + yOffset2; int Width = record.PlateRegion.Width + xOffset1 + xOffset2; Rectangle rect = new Rectangle(record.PlateRegion.X - xOffset1, record.PlateRegion.Y - yOffset2, Width, Height); Bitmap imgVehicle = new Bitmap(Width, Height); Graphics g = Graphics.FromImage(imgVehicle); g.DrawImage(image, new Rectangle(0, 0, Width, Height), rect, GraphicsUnit.Pixel); g.Dispose(); image = imgVehicle; } return(image); }
private void RetrieveSettings() { m_DTResult2DriverBeltWear = new Dictionary <string, Tuple <int, int, int> >(); if (File.Exists(m_FileName)) { StreamReader sr = File.OpenText(m_FileName); string line = sr.ReadLine(); string msg = string.Empty; List <string> files = new List <string>(); string[] segs; string fileName; int driverSaftBeltWearing; int coDriverSaftBeltWearing; int driverPhoneCalling; AnalyseRecord record; List <AnalyseRecord> records; int i = 0; while (line != null) { line = line.Trim(); if (!line.StartsWith("'") && !line.StartsWith("--")) { segs = line.Split(CHARS_SPLIT, StringSplitOptions.RemoveEmptyEntries); if (segs != null && segs.Length == 11) { fileName = segs[10].ToLower().Trim(); if (!m_DTFile2Results.ContainsKey(fileName)) { records = new List <AnalyseRecord>(); m_DTFile2Results.Add(fileName, records); } else { records = m_DTFile2Results[fileName]; } record = new AnalyseRecord(); record.PlateNumber = segs[0].Trim(); record.VehicleType = segs[1].Trim(); record.DetailVehicleType = segs[2].Trim(); record.VehicleColor = segs[3].Trim(); record.ParentBrandInfo = new VehiclePropertyInfo() { ID = -1, Name = segs[4].Trim() }; record.BrandInfo = new VehiclePropertyInfo() { ID = -1, Name = segs[5].Trim() }; record.PlateColor = segs[6].Trim(); record.DriverWearingSafeBelt = new VehiclePropertyInfo { ID = -1, Name = segs[7].Trim() }; record.CoDriverWearingSafeBelt = new VehiclePropertyInfo { ID = -1, Name = segs[8].Trim() }; record.DriverPhoneCalling = new VehiclePropertyInfo { ID = -1, Name = segs[9].Trim() }; record.PicPath = fileName; record.Id = (i++).ToString(); records.Add(record); m_Records.Add(record); } } line = sr.ReadLine(); } sr.Close(); sr.Dispose(); } }