/// <summary> /// Loads properties from a dicom file /// </summary> /// <param name="dicomFile"></param> public DicomSeries(Dicom.DicomFile dicomFile) { Instances = new List <Dicom.DicomFile>(); try { SeriesInstanceUid = dicomFile.Dataset.Get <string>(Dicom.DicomTag.SeriesInstanceUID); SeriesNumber = dicomFile.Dataset.Get <string>(Dicom.DicomTag.SeriesNumber); Modality = dicomFile.Dataset.Get <string>(Dicom.DicomTag.Modality); SeriesDescription = dicomFile.Dataset.Get <string>(Dicom.DicomTag.SeriesDescription); StudyInstanceUid = dicomFile.Dataset.Get <string>(Dicom.DicomTag.StudyInstanceUID); //try generate the thumbnail if (Thumbnail == null) { if (dicomFile.Dataset.Contains(Dicom.DicomTag.PixelData)) { var dicomImage = new Dicom.Imaging.DicomImage(dicomFile.Dataset); WriteableBitmap dicomBitmap = dicomImage.RenderImage(0).As <WriteableBitmap>(); Thumbnail = dicomBitmap; } } } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); System.Diagnostics.Debug.WriteLine(ex.InnerException); } }
public void Print(Graphics graphics, RectangleF box, int imageResolution) { var state = graphics.Save(); FillBox(box, graphics); var imageBox = box; if (FilmBox.Trim == "YES") { imageBox.Inflate(-BORDER, -BORDER); } if (ImageSequence != null && ImageSequence.Contains(DicomTag.PixelData)) { Image bitmap = null; try { var image = new Dicom.Imaging.DicomImage(ImageSequence); var frame = image.RenderImage(0); bitmap = frame;// new Bitmap(frame); //frame.Dispose(); DrawBitmap(graphics, box, bitmap, imageResolution); } finally { if (bitmap != null) { bitmap.Dispose(); } } } graphics.Restore(state); }
private void btn自动生成虚拟内窥视频_Click(object sender, RoutedEventArgs e) { string zipFileName = SelectedDicomPackageLocalPath; string tmpFolder = Path.Combine(Path.GetTempPath(), DateTime.Now.ToString("yyyyMMdd-HHmmss")); string haozipExe = @"HaoZipC.exe"; //string haozipExe = @"C:\Program Files\2345Soft\HaoZip\HaoZipC.exe"; string args = string.Format("x \"{0}\" -o\"{1}\"", zipFileName, tmpFolder); ProcessStartInfo psi = new ProcessStartInfo(haozipExe, args); //psi.CreateNoWindow = true; //psi.WindowStyle = ProcessWindowStyle.Hidden; Process process = Process.Start(psi); process.WaitForExit(); Console.WriteLine("ExitCode: " + process.ExitCode); string tmpImgFolder = Path.Combine(Path.GetTempPath(), DateTime.Now.ToString("yyyyMMdd-HHmmss")); Directory.CreateDirectory(tmpImgFolder); string[] files = Directory.GetFiles(tmpFolder, "*.*", SearchOption.AllDirectories); int counter = 0; foreach (var item in files) { Console.WriteLine(item); try { Dicom.Imaging.DicomImage dcmImg = new Dicom.Imaging.DicomImage(item); System.Drawing.Image img = dcmImg.RenderImage(); System.Drawing.Image resized = new System.Drawing.Bitmap(512, 512); System.Drawing.Graphics.FromImage(resized).DrawImage(img, System.Drawing.Point.Empty); resized.Save(Path.Combine(tmpImgFolder, (++counter) + ".jpg")); resized.Dispose(); img.Dispose(); img = null; } catch { } } Process.Start(tmpImgFolder); //string tmpFolder = @"C:\Users\zlf\AppData\Local\Temp\20151027-170929"; //DataListItem[] orderList = (DataListItem[])dataGridOrderList.DataContext; //DataListItem selectedOrder = orderList[dataGridOrderList.SelectedIndex]; //string vrAviFilePath = Path.Combine(Path.Combine(SelectedUser, selectedOrder.DataID), "vr.avi"); string img2aviArgs = string.Format("\"{0}\" \"{1}\"", tmpImgFolder, SelectedVRAviLocalPath); Console.WriteLine(img2aviArgs); Process img2AviProcess = Process.Start(@"I:\zlfLab\虚拟导航平台\navigate lx 20151026 2130 lx\LungCare.Airway.PlanNav\bin\Release\img2avi\img2avi.exe", img2aviArgs); img2AviProcess.WaitForExit(); Console.WriteLine("ExitCode: " + img2AviProcess.ExitCode); try { Directory.Delete(tmpImgFolder, true); } catch { } }