// Methods public Film(string id, string format, FilmSize size, FilmOrientation orientation) { this._id = id; this._format = format; this._size = size; this._orientation = orientation; }
public List<Film> GetFilms() { if (this._films == null) { this._films = new List<Film>(); string filename = string.Format("{0}{1}", AppDomain.CurrentDomain.BaseDirectory, "Film.xml"); XmlDocument document = new XmlDocument(); document.Load(filename); foreach (XmlElement element in document.SelectNodes("films/film")) { if (Convert.ToBoolean(element.GetAttribute("enabled"))) { string attribute = element.GetAttribute("id"); string format = element.GetAttribute("format"); // FilmSize size = (FilmSize)Enum.Parse(typeof(FilmSize), element.GetAttribute("size")); FilmSize size = FilmSize.FromDicomString(element.GetAttribute("size")); //FilmSize size = FilmSize.Dimension_14in_x_17in; FilmOrientation orientation = (FilmOrientation)Enum.Parse(typeof(FilmOrientation), element.GetAttribute("orientation")); Film item = new Film(attribute, format, size, orientation); this._films.Add(item); } } } return this._films; }
public void Add(FilmOrientation filmOrientation) { if (filmOrientation != FilmOrientation.None) { this.FilmOrientationList.Add(filmOrientation); } }
public void Layout(FilmSize filmSize, FilmOrientation filmOrientation) { float w = 1; float h = 1; if (filmSize != null) { if (filmOrientation == FilmOrientation.Landscape) //horizontal film position { h = filmSize.GetWidth(FilmSize.FilmSizeUnit.Inch); w = filmSize.GetHeight(FilmSize.FilmSizeUnit.Inch); } else { w = filmSize.GetWidth(FilmSize.FilmSizeUnit.Inch); h = filmSize.GetHeight(FilmSize.FilmSizeUnit.Inch); } } RootImageBox = new PrintViewImageBox(); RootImageBox.ImageViewer = this; RootImageBox.NormalizedRectangle = new RectangleF(0, 0, w, h); SetTileGrid(ImageDisplayFormat.Standard_1x1); //RootImageBox.DisplaySet = new DisplaySet(); }
internal PrintImageViewerControl(PrintImageViewerComponent component) { _component = component; InitializeComponent(); this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); _component.Closing += new EventHandler(OnComponentClosing); _component.Drawing += new EventHandler(OnPhysicalWorkspaceDrawing); _component.LayoutCompleted += new EventHandler(OnLayoutCompleted); _component.ScreenRectangleChanged += new EventHandler(OnScreenRectangleChanged); _delayedEventPublisher = new DelayedEventPublisher(OnRecalculateImageBoxes, 50); #region ��ӡ������ printComponent = _component.DicomPrintComponent as DicomPrintComponent; if (printComponent != null) { FilmSize fileSize = printComponent.DicomPrinterConfigurationEditorComponent.FilmSize.ToFilmSize(); FilmOrientation filmOrientation = printComponent.DicomPrinterConfigurationEditorComponent.FilmOrientation; _component.Layout(fileSize, filmOrientation); this.Load += Loaded; } #endregion #region �˵������� this.ToolbarModel = _component.ToolbarModel; this.ContextMenuModel = component.ContextMenuModel; #endregion FilmCount.DataBindings.Add("Text", _component, "FilmCount", true, DataSourceUpdateMode.OnPropertyChanged); ImageCount.DataBindings.Add("Text", _component, "ImageCount", true, DataSourceUpdateMode.OnPropertyChanged); }
private void ImageBoxSizeChanged() { FilmSize fileSize = printComponent.DicomPrinterConfigurationEditorComponent.FilmSize.ToFilmSize(); FilmOrientation filmOrientation = printComponent.DicomPrinterConfigurationEditorComponent.FilmOrientation; _component.ImageBoxSizeChanged(fileSize, filmOrientation); }
private Point CalculateLocation(FilmOrientation Status, double size) { if (Status == FilmOrientation.Portrait) { this._portraitPoint = new Point(Convert.ToInt32(Math.Round((double)((((double)this.panPrewControl.Width) / 2.0) - (size / 2.0)), 0)), 0); return(this._portraitPoint); } this._landscapePoint = new Point(0, Convert.ToInt32(Math.Round((double)((((double)this.panPrewControl.Height) / 2.0) - (size / 2.0)), 0))); return(this._landscapePoint); }
// Methods public PrintJob(int id, PreviewTileCollection images, string format, FilmSize size, FilmOrientation orien, int copies, Printer printer) { this._id = id; this._images = images; this._format = format; this._filmSize = size; this._filmOrien = orien; this._copies = copies; this._printer = printer; }
public FilmBox(PrinterImageDisplayFormat imageDisplayFormat, FilmOrientation filmOrientation, BorderDensity borderDensity, EmptyImageDensity emptyImageDensity, MagnificationType magnificationType, PrinterFilmSize filmSize, AutomaticFilmSizeConfiguration automaticFilmSizeConfiguration, string configurationInformation, RequestedResolution requestedResolution) { _imageDisplayFormat = imageDisplayFormat; _filmOrientation = filmOrientation; _borderDensity = borderDensity; _emptyImageDensity = emptyImageDensity; _magnificationType = magnificationType; _filmSize = filmSize; _automaticFilmSizeConfiguration = automaticFilmSizeConfiguration; _configurationInformation = configurationInformation; _requestedResolution = requestedResolution; }
public FilmBox() { _imageDisplayFormat = PrinterImageDisplayFormat.Default; _filmOrientation = FilmOrientation.Portrait; _borderDensity = BorderDensity.None; _emptyImageDensity = EmptyImageDensity.None; _magnificationType = MagnificationType.None; _filmSize = PrinterFilmSize.Default; _automaticFilmSizeConfiguration = new AutomaticFilmSizeConfiguration(); _configurationInformation = null; _requestedResolution = RequestedResolution.Standard; }
public static string ToStringEx(this FilmOrientation self) { switch (self) { case FilmOrientation.Portrait: return("PORTRAIT"); case FilmOrientation.Landscape: return("LANDSCAPE"); default: return("PORTRAIT"); } }
private static string ConvertFilmOrientation(FilmOrientation filmOrientation) { switch (filmOrientation) { case FilmOrientation.Portrait: return(SR.LabelFilmOrientationPortrait); case FilmOrientation.Landscape: return(SR.LabelFilmOrientationLandscape); default: return(filmOrientation.ToString()); } }
private void UpdatePrinterControl(FilmOrientation orientation, double filmRatio) { Size size; int width = Convert.ToInt32((double)(this.panPrewControl.Height * filmRatio)); if (orientation == FilmOrientation.Portrait) { size = new Size(width, this.panPrewControl.Height); } else { size = new Size(this.panPrewControl.Width, width); } this.printPreviewControl1.Size = size; this.printPreviewControl1.Location = this.CalculateLocation(orientation, (double)width); }
public static Size FilmBoxSize(FilmSize filmSizeId, int filmDPI, FilmOrientation filmOrientation) { if (filmSizeId == null) { return(Size.Empty); } var physicalWidthInInches = filmSizeId.GetWidth(FilmSize.FilmSizeUnit.Inch); var physicalHeightInInches = filmSizeId.GetHeight(FilmSize.FilmSizeUnit.Inch); var width = (int)Math.Ceiling(physicalWidthInInches * filmDPI); var height = (int)Math.Ceiling(physicalHeightInInches * filmDPI); return(filmOrientation == FilmOrientation.Landscape ? new Size(height, width) : new Size(width, height)); // default portrait, even if the value is None }
private void DicomPrintTable_SelectionChangeCommitted(object sender, EventArgs e) { if (DicomPrintTable.SelectedItem != null) { string key = (string)DicomPrintTable.SelectedItem; if (dicomPrintList.ContainsKey(key)) { printComponent.SelectedItem = new Selection(dicomPrintList[key]); } FilmSize fileSize = printComponent.DicomPrinterConfigurationEditorComponent.FilmSize.ToFilmSize(); FilmOrientation filmOrientation = printComponent.DicomPrinterConfigurationEditorComponent.FilmOrientation; if (_component.RootImageBox != null) { _component.ImageBoxSizeChanged(fileSize, filmOrientation); } if (filmOrientation == FilmOrientation.Landscape) { radioHengXiang.Checked = true; } else if (filmOrientation == FilmOrientation.Portrait) { radioZongXiang.Checked = true; } this.NumberOfCopies.DataBindings.Clear(); this.NumberOfCopies.DataBindings.Add("Value", printComponent.DicomPrinterConfigurationEditorComponent, "NumberOfCopies", true, DataSourceUpdateMode.OnPropertyChanged); this.FilmSizeComBox.DataBindings.Clear(); this.FilmSizeComBox.DataSource = printComponent.DicomPrinterConfigurationEditorComponent.FilmSizeChoices; this.FilmSizeComBox.DataBindings.Add("SelectedItem", printComponent.DicomPrinterConfigurationEditorComponent, "FilmSize", true, DataSourceUpdateMode.Never); } }
private void DoImageProcess(object state) { FilmSize filmsize = DicomPrinter.Config.FilmBox.FilmSize.ToFilmSize(); int filmDpi = DicomPrinter.Config.StandardResolutionDPI; FilmOrientation filmOrientation = DicomPrinter.Config.FilmBox.FilmOrientation; PresentationMode presentationMode = DicomPrinter.Config.PresentationMode; ColorMode colorMode = this.DicomPrinter.Config.ColorMode; List <IPresentationImage> presentationImage = MergerDicomImageToBitmap.Merger(filmsize, filmDpi, filmOrientation, _selectPresentationsInformations, presentationMode, colorMode, _tileCount); _studyInstanceUid = new List <string>(); foreach (var selectPresentationsInformation in _selectPresentationsInformations) { IImageSopProvider image = (IImageSopProvider)selectPresentationsInformation.Image; if (image != null && !_studyInstanceUid.Contains(image.Sop.StudyInstanceUid)) { _studyInstanceUid.Add(image.Sop.StudyInstanceUid); } selectPresentationsInformation.Dispose(); } _selectPresentationsInformations.Clear(); foreach (var image in presentationImage) { var frame = ((IImageSopProvider)image).Frame; Rectangle client = new Rectangle(0, 0, frame.Columns, frame.Rows); _selectPresentationsInformations.Add(new SelectPresentionInformation(image, client)); } DicomPrinter.Config.FilmBox.ImageDisplayFormat = new PrinterImageDisplayFormat() { Value = @"STANDARD\1,1" }; }
//// Events //public event EventHandler ActionChanged //{ // add // { // this._window.MenuModelUpdated += value; // } // remove // { // this._window.MenuModelUpdated -= value; // } //} //public event EventHandler MenuModelUpdated //{ // add // { // this._window.MenuModelUpdated += value; // } // remove // { // this._window.MenuModelUpdated -= value; // } //} // Methods public PrintToolComponent(IDesktopWindow window) { EventHandler handler = null; this._lastFilmOrientation = FilmOrientation.Portrait; this._numberOfCopies = 1M; this.printListKey = 1; this._window = window; this.provider = PrinterProviderFactory.CreateProvider(); this._printerList = this.provider.GetPrinterCollection(); this._printerList.ActiveChanged += handler; foreach (Printer printer in this._printerList) { if (printer.Selected) { this._selectedPrinter = printer; this._currentPrinter = printer.PrinterName; break; } } this._lastFilmSize = FilmSize.Dimension_8in_x_10in; this._printJobManager = new PrintJobManager(this._window, this); }
public void ImageBoxSizeChanged(FilmSize filmSize, FilmOrientation filmOrientation) { float w = 1; float h = 1; if (filmSize != null) { if (filmOrientation == FilmOrientation.Landscape) //horizontal film position { h = filmSize.GetWidth(FilmSize.FilmSizeUnit.Inch); w = filmSize.GetHeight(FilmSize.FilmSizeUnit.Inch); } else { w = filmSize.GetWidth(FilmSize.FilmSizeUnit.Inch); h = filmSize.GetHeight(FilmSize.FilmSizeUnit.Inch); } } RootImageBox.NormalizedRectangle = new RectangleF(0, 0, w, h); EventsHelper.Fire(_layoutCompletedEvent, this, EventArgs.Empty); this.RootImageBox.Draw(); }
// Methods public OrientationArgs(FilmOrientation key, double filmRatio) { this._key = key; this._filmRatio = filmRatio; }
private void Loaded(object sender, EventArgs e) { if (printComponent == null) { return; } FilmSize fileSize = printComponent.DicomPrinterConfigurationEditorComponent.FilmSize.ToFilmSize(); FilmOrientation filmOrientation = printComponent.DicomPrinterConfigurationEditorComponent.FilmOrientation; if (_component.RootImageBox != null) { _component.ImageBoxSizeChanged(fileSize, filmOrientation); } if (filmOrientation == FilmOrientation.Landscape) { radioHengXiang.Checked = true; } else if (filmOrientation == FilmOrientation.Portrait) { radioZongXiang.Checked = true; } this.NumberOfCopies.DataBindings.Clear(); this.NumberOfCopies.DataBindings.Add("Value", printComponent.DicomPrinterConfigurationEditorComponent, "NumberOfCopies", true, DataSourceUpdateMode.OnPropertyChanged); this.FilmSizeComBox.DataBindings.Clear(); this.FilmSizeComBox.DataSource = printComponent.DicomPrinterConfigurationEditorComponent.FilmSizeChoices; this.FilmSizeComBox.DataBindings.Add("SelectedItem", printComponent.DicomPrinterConfigurationEditorComponent, "FilmSize", true, DataSourceUpdateMode.Never); InitDicomPrintTable(); ISelection selectedItem = printComponent.SelectedItem; if (selectedItem == null || selectedItem.Item == null) { return; } var print = (Checkable <DicomPrinter>)selectedItem.Item; foreach (object item in DicomPrintTable.Items) { var name = (string)item; if (name == null) { continue; } if (name == print.Item.Name) { DicomPrintTable.SelectedItem = item; break; } } printComponent.DicomPrinterConfigurationEditorComponent.ImageDisplayFormat = new PrinterImageDisplayFormat() { Value = displayFormat.DicomString };; }
public static List <IPresentationImage> Merger(FilmSize filmSizeId, int filmDPI, FilmOrientation filmOrientation, List <ISelectPresentationsInformation> selects, PresentationMode presentationMode, ColorMode colorMode, int tileCount) { if (selects.Count == 0) { return(null); } List <IPresentationImage> results = new List <IPresentationImage>(); Size filmSize = CaclFilmAndImageSize.FilmBoxSize(filmSizeId, filmDPI, filmOrientation); if (filmSize == Size.Empty) { return(null); } Bitmap result = null; System.Drawing.Graphics graphics = null; string savePath = null; foreach (var temp in selects) { var imageSopProvider = temp.Image as IImageSopProvider; if (imageSopProvider == null) { continue; } var localSource = imageSopProvider.ImageSop.DataSource as ILocalSopDataSource; if (localSource != null) { int index = localSource.Filename.LastIndexOf("\\"); savePath = localSource.Filename.Substring(0, index); break; } } for (int i = 0; i < selects.Count; i++) { var select = selects[i]; if (i != 0 && i % tileCount == 0) //翻页时进入此处 { IPresentationImage presentationImage = CreateResultImage(result, colorMode, savePath); graphics.Dispose(); results.Add(presentationImage); result.Dispose(); result = null; } if (result == null) { result = new Bitmap(filmSize.Width, filmSize.Height); graphics = System.Drawing.Graphics.FromImage(result); } Point location; Size imageBoxSize = CaclFilmAndImageSize.ImageBoxSize(filmSize, out location, select.NormalizedRectangle); Bitmap bitmap = GetPrintImageBitmap(select, imageBoxSize, presentationMode); if (bitmap == null) { continue; } System.Drawing.Graphics borderGraphics = System.Drawing.Graphics.FromImage(bitmap); Platform.Log(LogLevel.Debug, new Size(bitmap.Width, bitmap.Height)); borderGraphics.DrawRectangle(new Pen(Color.White, 2), 0, 0, bitmap.Width, bitmap.Height); graphics.DrawImageUnscaled(bitmap, location.X, location.Y); bitmap.Dispose(); borderGraphics.Dispose(); } var image = CreateResultImage(result, colorMode, savePath); graphics.Dispose(); results.Add(image); result.Dispose(); return(results); }