private void imageView1_OnItemClick(object sender, DevExpress.XtraEditors.TileItemEventArgs e) { try { if (e.Item == null) { return; } TileImageInfo imageInfo = e.Item.Tag as TileImageInfo; if (imageInfo == null) { return; } if (imageInfo.MediaType != "图像") { MessageBox.Show("音视频不能进行处理。", "提示"); return; } _selectImageID = imageInfo.MediaId; imageProcessControl1.LoadBackImage(ImageEx.LoadFile(imageInfo.File) as Bitmap); } catch (Exception ex) { MsgBox.ShowException(ex, this); } }
/// <summary> /// 载入申请图像 /// </summary> private void LoadApplyImages(string applyId) { if (_images == null) { _images = new List <TileImageInfo>(); } if (_sm == null) { _sm = new StudyMediaSerialModel(_dbQuery); } _images.Clear(); imageView1.Clear(); DataTable dtMedias = _sm.GetApplyMedia(applyId); if (dtMedias == null || dtMedias.Rows.Count <= 0) { return; } dtMedias.DefaultView.Sort = "序号 Desc"; StudySerialData serialData = null; foreach (DataRowView dr in dtMedias.DefaultView) { StudyMediaData smd = new StudyMediaData(); smd.BindRowData(dr.Row); if (serialData == null || serialData.序列ID.Equals(smd.序列ID) == false) { serialData = _sm.GetApplySerialInfoById(smd.序列ID); } TileImageInfo imgInfo = new TileImageInfo(); imgInfo.MediaId = smd.媒体ID; imgInfo.SerialId = smd.序列ID; imgInfo.ApplyId = smd.申请ID; imgInfo.StorageId = serialData.存储ID; imgInfo.Order = smd.序号.ToString(); imgInfo.IsReportImage = smd.媒体信息.是否报告图; imgInfo.IsKeyImage = smd.媒体信息.是否关键图; imgInfo.MediaName = smd.媒体信息.媒体名称; imgInfo.MediaType = smd.媒体信息.媒体类型; imgInfo.VPath = Convert.ToDateTime(serialData.序列信息.申请日期).ToString("yyyyMMdd") + @"\" + serialData.申请ID + @"\images"; imgInfo.File = Dir.GetAppTempDir() + @"\" + Convert.ToDateTime(serialData.序列信息.申请日期).ToString("yyyyMMdd") + @"\" + serialData.申请ID + @"\images" + @"\" + smd.媒体信息.媒体名称; _images.Add(imgInfo); } imageView1.ViewCount = _imgViewCount; splitPage1.BindList <TileImageInfo>(_images, _imgViewCount); }
private void AddReportImage(TileImageInfo imageInfo) { try { _imageInfo = imageInfo; DoActions(_designEvents[ImgEventDefine.AddReportImage], this); } catch (Exception ex) { MsgBox.ShowException(ex, this); } }
private void tsbSaveReport_Click(object sender, EventArgs e) { try { int imgIndex = _images.FindIndex(T => T.MediaId == _selectImageID); if (imgIndex < 0) { MessageBox.Show("未检索到对应的检查图像,不能进行保存。", "提示"); return; } TileImageInfo imageInfo = _images[imgIndex]; OnAddReportImage?.Invoke(imageInfo); } catch (Exception ex) { MsgBox.ShowException(ex, this); } }
void Awake() { // tileImageInfo. tileStatus = TILE_STATUS.UNOWNED_LAND; // assign the offsets to each player PlayerslocationsOffsets = new Vector3[4]; PlayerslocationsOffsets[0] = new Vector3(-0.75f, 0.45f, 0.75f); PlayerslocationsOffsets[1] = new Vector3(0.7f, 0.45f, -0.7f); PlayerslocationsOffsets[2] = new Vector3(0.75f, 0.45f, 0.75f); PlayerslocationsOffsets[3] = new Vector3(-0.7f, 0.45f, -0.7f); // add the global position of the tile to the offsets PlayersLocations = new Vector3[4]; for (int i = 0; i < playersNo; i++) { PlayersLocations[i] = transform.position + Vector3.up * PlayerslocationsOffsets[i].y + Vector3.right * PlayerslocationsOffsets[i].x + Vector3.forward * PlayerslocationsOffsets[i].z; } tileImageInfo = new TileImageInfo(); tileImageInfo.setValues(this.tileName, this.Tilecost, this.rentMoney); }
public TileItem FindByImageId(string imageId) { if (tileControl1.Groups.Count <= 0) { return(null); } foreach (TileItem tileItem in tileControl1.Groups[0].Items) { TileImageInfo imageInfo = tileItem.Tag as TileImageInfo; if (imageInfo == null) { continue; } if (imageInfo.MediaId == imageId) { return(tileItem); } } return(null); }
public void AddErrorImage(string msg, TileImageInfo imgInfo) { if (this.InvokeRequired)//如果是在非创建控件的线程访问,即InvokeRequired=true { DelegateAddError addErrProcess = new DelegateAddError(AddErrorImage); this.Invoke(addErrProcess, new object[] { msg, imgInfo }); } else { TileItem ti = new TileItem(); ti.ImageScaleMode = TileItemImageScaleMode.Stretch; ti.ItemSize = TileItemSize.Large; ti.Text = ""; ti.Tag = imgInfo; TileItemElement tie = new TileItemElement(); tie.Image = imageList2.Images[0]; tie.ImageSize = new Size(24, 24); tie.ImageToTextAlignment = TileControlImageToTextAlignment.Left; tie.TextAlignment = TileItemContentAlignment.MiddleCenter; //tie.ImageAlignment = TileItemContentAlignment.Default; tie.Text = msg; ti.Elements.Add(tie); if (tileControl1.Groups.Count <= 0) { TileGroup tg = new TileGroup(); tg.Text = ""; tileControl1.Groups.Add(tg); } tileControl1.Groups[0].Items.Insert(0, ti); //tileControl1.Groups[0].Items.Add(ti); } }
private void tsbSaveStudy_Click(object sender, EventArgs e) { string UploadToFtp(string vPath, string mediaFile) { //上传到ftp FTPFileHelp ftp = Transfer.GetFtp(vPath, _serialData.存储ID, _dbHelper); if (ftp == null) { throw new Exception("FTP对象创建失败。"); } System.IO.FileInfo fi = new System.IO.FileInfo(mediaFile); ftp.MakeDirectory(ftp.VPath); ftp.FileUpLoad(ftp.VPath + fi.Name, fi); return(fi.Name); } try { int imgIndex = _images.FindIndex(T => T.MediaId == _selectImageID); if (imgIndex < 0) { MessageBox.Show("未检索到对应的检查图像,不能进行保存。", "提示"); return; } Image processImg = imageProcessControl1.ExportImage(); TileImageInfo imageInfo = _images[imgIndex]; //序列信息为空或为不同的申请,则需要重新获取序列信息 if (_serialData == null || _serialData.申请ID.Equals(_applyId) == false) { _serialData = _studyMediaModel.GetApplySerialInfoById(imageInfo.SerialId); } if (_serialData == null) { MessageBox.Show("尚未产生图像序列,不能进行保存。", "提示"); return; } StudyMediaData sourceMedia = _studyMediaModel.GetMediaInfoById(imageInfo.MediaId); string vPath = GetImageVpath(_applyId, _serialData.序列信息.申请日期); if (string.IsNullOrEmpty(sourceMedia.媒体信息.来源媒体ID)) { string localPath = FormatFilePath(Dir.GetAppTempDir() + @"\" + vPath); string mediaFile = FormatFilePath(localPath + @"\" + GetImgFileName("bmp")); if (System.IO.Directory.Exists(localPath) == false) { System.IO.Directory.CreateDirectory(localPath); } //保存修改图像 processImg.Save(mediaFile); //先上传图像到ftp string mediaName = UploadToFtp(vPath, mediaFile); //新增数据 StudyMediaData mediaData = new StudyMediaData(); mediaData.DcmUID = SqlHelper.GetDcmUID("3"); mediaData.媒体ID = SqlHelper.GetNumGuid(); mediaData.序列ID = _serialData.序列ID; mediaData.申请ID = _serialData.申请ID; mediaData.序号 = _studyMediaModel.GetMaxMediaNo(_serialData.序列ID) + 1; mediaData.媒体信息.媒体名称 = mediaName; mediaData.媒体信息.创建人 = _userData.Name; mediaData.媒体信息.创建日期 = _studyMediaModel.GetServerDate(); mediaData.媒体信息.媒体类型 = "图像";// MediaType.图像; mediaData.媒体信息.媒体描述 = ""; mediaData.媒体信息.来源媒体ID = sourceMedia.媒体ID; mediaData.媒体信息.最后处理人 = _userData.Name; mediaData.媒体信息.最后处理时间 = mediaData.媒体信息.创建日期; mediaData.媒体信息.最后版本 = 1; mediaData.媒体信息.CopyBasePro(mediaData); _studyMediaModel.NewMedia(mediaData); //添加图像到缩略图中显示 TileImageInfo newImg = new TileImageInfo(); newImg.CopyFrom(imageInfo); newImg.MediaId = mediaData.媒体ID; newImg.MediaName = mediaName; newImg.Order = Convert.ToString(mediaData.序号); newImg.File = mediaFile; _images.Add(newImg); imageView1.AddImage(newImg); imageView1.Selected(0); _selectImageID = newImg.MediaId; } else { //if (File.Exists(imageInfo.File)) //{ // File.Delete(imageInfo.File); //} //保存修改图像 processImg.Save(imageInfo.File); //先上传图像到ftp string mediaName = UploadToFtp(vPath, imageInfo.File); sourceMedia.媒体信息.最后版本 = sourceMedia.媒体信息.最后版本 + 1; sourceMedia.媒体信息.最后处理人 = _userData.Name; sourceMedia.媒体信息.最后处理时间 = _studyMediaModel.GetServerDate(); //更新数据库 _studyMediaModel.UpdateMedia(sourceMedia); //更新缩略图显示 imageView1.UpdateTileImage(null, imageInfo.File); } OnImageSave?.Invoke(imageInfo); } catch (Exception ex) { MsgBox.ShowException(ex, this); } }
public override bool ExecuteAction(string callModuleName, ISysDesign callModule, object sender, string actName, string tag, IBizDataItems bizDatas, object eventArgs = null) { switch (actName) { case ImageActionDefine.LoadImages: //刷新申请图像 if (bizDatas == null) { return(false); } _applyId = DataHelper.GetItemValueByApplyId(bizDatas[0]); LoadApplyImages(_applyId); break; case ImageActionDefine.RefreshImage: if (string.IsNullOrEmpty(_applyId)) { _images.Clear(); imageView1.Clear(); splitPage1.BindNull(0, _imgViewCount); return(true); } LoadApplyImages(_applyId); break; case ImageActionDefine.AddImage: //添加图像 if (bizDatas == null) { return(false); } TileImageInfo imgInfo = new TileImageInfo(); imgInfo.MediaId = DataHelper.GetItemValueByImageId(bizDatas[0]); imgInfo.SerialId = DataHelper.GetItemValueBySerialId(bizDatas[0]); imgInfo.MediaType = DataHelper.GetItemValueByMediaType(bizDatas[0]); imgInfo.Order = DataHelper.GetItemValueByMediaOrder(bizDatas[0]); imgInfo.File = DataHelper.GetItemValueByFile(bizDatas[0]); imgInfo.IsKeyImage = false; imgInfo.IsReportImage = false; if (File.Exists(imgInfo.File) == false) { MessageBox.Show("未找到本地图像文件 [" + imgInfo.File + "],不能进行加载。", "提示"); return(false); } FileInfo fi = new FileInfo(imgInfo.File); imgInfo.MediaName = fi.Name; if (_images == null) { _images = new List <TileImageInfo>(); } _images.Insert(0, imgInfo); splitPage1.UpdatePage(_images.Count); imageView1.AddImage(imgInfo); imageView1.RefreshImageRange(); break; case ImageActionDefine.ImageSetting: //影像相关参数设置 ShowImageConfig(); break; default: break; } return(true); }
public override IBizDataItems QueryDatas(string dataIdentificationName) { BizDataItems resultDatas = null; BizDataItem dataItem = null; TileImageInfo imgInfo = null; string dataName = _provideDataDesc.FormatDataName(_moduleName, dataIdentificationName); switch (dataName) { case ImageDataDefine.SelImageData: //当前选择的图像 resultDatas = new BizDataItems(); List <TileItem> checkItems = imageView1.CheckItems; if (checkItems == null || checkItems.Count <= 0) { checkItems = new List <TileItem>(); if (imageView1.SelItem != null) { checkItems.Add(imageView1.SelItem); } } foreach (TileItem ti in checkItems) { dataItem = new BizDataItem(); imgInfo = ti.Tag as TileImageInfo; if (imgInfo == null) { continue; } dataItem.Add(DataHelper.StdPar_ApplyId, _applyId); dataItem.Add(DataHelper.StdPar_MediaId, imgInfo.MediaId); dataItem.Add(DataHelper.StdPar_SerialId, imgInfo.SerialId); dataItem.Add(DataHelper.StdPar_StorageId, imgInfo.StorageId); dataItem.Add(DataHelper.StdPar_MediaOrder, imgInfo.Order); dataItem.Add(DataHelper.StdPar_MediaType, imgInfo.MediaType); dataItem.Add(DataHelper.StdPar_MediaName, imgInfo.MediaName); dataItem.Add(DataHelper.StdPar_IsKeyImage, imgInfo.IsKeyImage); dataItem.Add(DataHelper.StdPar_IsReportImage, imgInfo.IsReportImage); dataItem.Add(DataHelper.StdPar_LocalFile, imgInfo.File); dataItem.Add(DataHelper.StdPar_VPath, imgInfo.VPath); resultDatas.Add(dataItem); } resultDatas.Key = _applyId; resultDatas.Tag = null; return(resultDatas); case ImageDataDefine.MouseItemData: //光标所在Item if (_mouseItem == null) { return(null); } resultDatas = new BizDataItems(); dataItem = new BizDataItem(); imgInfo = _mouseItem.Tag as TileImageInfo; if (imgInfo == null) { return(null); } dataItem.Add(DataHelper.StdPar_ApplyId, _applyId); dataItem.Add(DataHelper.StdPar_MediaId, imgInfo.MediaId); dataItem.Add(DataHelper.StdPar_SerialId, imgInfo.SerialId); dataItem.Add(DataHelper.StdPar_StorageId, imgInfo.StorageId); dataItem.Add(DataHelper.StdPar_MediaOrder, imgInfo.Order); dataItem.Add(DataHelper.StdPar_MediaType, imgInfo.MediaType); dataItem.Add(DataHelper.StdPar_MediaName, imgInfo.MediaName); dataItem.Add(DataHelper.StdPar_IsKeyImage, imgInfo.IsKeyImage); dataItem.Add(DataHelper.StdPar_IsReportImage, imgInfo.IsReportImage); dataItem.Add(DataHelper.StdPar_LocalFile, imgInfo.File); dataItem.Add(DataHelper.StdPar_VPath, imgInfo.VPath); resultDatas.Add(dataItem); return(resultDatas); default: return(null); } }
private void SampleGetTileInfo() { string defaultMapName = this._mapservice.GetDefaultMapName(); this._mapservice.GetServerInfo(defaultMapName); MapDescription defaultMapDescription = this._mapinfo.DefaultMapDescription; string virtualCacheDirectory = this._mapservice.GetVirtualCacheDirectory(defaultMapName, -1); int num = 400; int height = 400; EnvelopeN envelopeN = (EnvelopeN)defaultMapDescription.MapArea.Extent; double num2 = Math.Abs(envelopeN.XMax - envelopeN.XMin) / (double)num; Bitmap bitmap = new Bitmap(num, height); Graphics graphics = Graphics.FromImage(bitmap); graphics.FillRectangle(new SolidBrush(System.Drawing.Color.LightGray), 0, 0, num, height); if (this._mapservice.HasSingleFusedMapCache(defaultMapName)) { TileCacheInfo tileCacheInfo = this._mapservice.GetTileCacheInfo(defaultMapName); LODInfo[] lODInfos = tileCacheInfo.LODInfos; double num3 = 0.0; int level = 0; LODInfo[] array = lODInfos; for (int i = 0; i < array.Length; i++) { LODInfo lODInfo = array[i]; double resolution = lODInfo.Resolution; num3 = resolution; level = lODInfo.LevelID; if (num2 >= resolution) { break; } } double xMin = envelopeN.XMin; double yMin = envelopeN.YMin; double xMax = envelopeN.XMax; double yMax = envelopeN.YMax; double x = ((PointN)tileCacheInfo.TileOrigin).X; double y = ((PointN)tileCacheInfo.TileOrigin).Y; double d = (xMin - x) / ((double)tileCacheInfo.TileCols * num3); double d2 = (y - yMax) / ((double)tileCacheInfo.TileRows * num3); double d3 = (xMax - x) / ((double)tileCacheInfo.TileCols * num3); double d4 = (y - yMin) / ((double)tileCacheInfo.TileRows * num3); int num4 = (int)Math.Floor(d); int num5 = (int)Math.Floor(d2); int num6 = (int)Math.Floor(d3); int num7 = (int)Math.Floor(d4); double num8 = x + (double)num4 * ((double)tileCacheInfo.TileCols * num3); double num9 = y - (double)num5 * ((double)tileCacheInfo.TileRows * num3); double num10 = Math.Abs(xMin - num8); double num11 = Math.Abs(yMax - num9); int num12 = (int)(num10 / num3); int num13 = (int)(num11 / num3); TileImageInfo tileImageInfo = this._mapservice.GetTileImageInfo(this._mapservice.GetDefaultMapName()); int num14 = 0; for (int j = num5; j <= num7; j++) { int num15 = 0; for (int k = num4; k <= num6; k++) { byte[] array2 = null; try { array2 = this._mapservice.GetMapTile(defaultMapName, level, j, k, tileImageInfo.CacheTileFormat); string text = "png"; string requestUriString = string.Concat(new string[] { virtualCacheDirectory, "/L", level.ToString().PadLeft(2, '0'), "/R", j.ToString("x").PadLeft(8, '0'), "/C", k.ToString("x").PadLeft(8, '0'), text }); HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(requestUriString); HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse(); Stream responseStream = httpWebResponse.GetResponseStream(); MemoryStream memoryStream = new MemoryStream(); int num16; while ((num16 = responseStream.ReadByte()) != -1) { memoryStream.WriteByte((byte)num16); } array2 = memoryStream.ToArray(); } catch { } if (array2 != null) { using (MemoryStream memoryStream2 = new MemoryStream(array2, 0, array2.Length)) { memoryStream2.Write(array2, 0, array2.Length); Image image = Image.FromStream(memoryStream2, true); graphics.DrawImage(image, tileCacheInfo.TileCols * num15 - num12, tileCacheInfo.TileRows * num14 - num13, tileCacheInfo.TileCols, tileCacheInfo.TileRows); } } num15++; } num14++; } } string filename = Utility.TemporaryFilePath() + ".bmp"; bitmap.Save(filename, ImageFormat.Bmp); Bitmap bitmap2 = new Bitmap(num, height); Graphics graphics2 = Graphics.FromImage(bitmap2); graphics2.FillRectangle(new SolidBrush(System.Drawing.Color.LightGray), 0, 0, num, height); graphics2.DrawImage(bitmap, 0, 0, num, height); string filename2 = Utility.TemporaryFilePath() + ".bmp"; bitmap2.Save(filename2, ImageFormat.Bmp); }
public TileItem AddImage(TileImageInfo imgInfo) { TileItem AddImageToTile(System.Drawing.Image img) { TileItem ti = new TileItem(); ti.Image = img; ti.ImageScaleMode = TileItemImageScaleMode.Stretch; ti.ItemSize = TileItemSize.Large; ti.Text = ""; ti.Tag = imgInfo; TileItemElement tie = new TileItemElement(); tie.Image = imageList1.Images[0]; tie.ImageSize = new Size(32, 32); tie.ImageAlignment = TileItemContentAlignment.TopRight; tie.Text = ""; ti.Elements.Add(tie); if (imgInfo.IsKeyImage) { TileItemElement tieKey = new TileItemElement(); tieKey.Image = imageList2.Images[1]; tieKey.Image.Tag = "lock"; tieKey.ImageSize = new Size(16, 16); tieKey.ImageAlignment = TileItemContentAlignment.TopLeft; tieKey.Text = ""; ti.Elements.Add(tieKey); } TileItemElement tieOrder = new TileItemElement(); tieOrder.TextAlignment = TileItemContentAlignment.BottomLeft; tieOrder.Text = imgInfo.Order; ti.Elements.Add(tieOrder); if (tileControl1.Groups.Count <= 0) { TileGroup tg = new TileGroup(); tg.Text = ""; tileControl1.Groups.Add(tg); } if (tileControl1.Groups[0].Items.Count >= _imgViewCount) { tileControl1.Groups[0].Items.RemoveAt(0); } tileControl1.Groups[0].Items.Insert(0, ti); //tileControl1.Groups[0].Items.Add(ti); return(ti); } if (this.InvokeRequired)//如果是在非创建控件的线程访问,即InvokeRequired=true { DelegateAddImage addImgProcess = new DelegateAddImage(AddImage); return(this.Invoke(addImgProcess, new object[] { imgInfo }) as TileItem); } else { System.Drawing.Image img = null; //视频音频类型媒体加载判断处理 if (imgInfo.MediaType == "视频") { img = imageList3.Images[0]; } else if (imgInfo.MediaType == "音频") { img = imageList3.Images[1]; } else { img = ImageEx.LoadFile(imgInfo.File); } return(AddImageToTile(img)); } }