/// <summary>
 /// Gets the film size string from enum.  Note, have to do this because can't make enum values that start with a number...
 /// </summary>
 /// <param name="filmSizeId">The film size id.</param>
 /// <returns></returns>
 public static string GetFilmSizeStringFromEnum(FilmSize filmSizeId)
 {
     string result = String.Empty;
     if (filmSizeId != FilmSize.None)
     {
         if (filmSizeId == FilmSize.A3 || filmSizeId == FilmSize.A4)
             result = filmSizeId.ToString();
         else if (filmSizeId.ToString().Length > 2)
         {
             string filmSizeString = filmSizeId.ToString();
             // Format is INYxZ or CMYxZ - where Y is first dimension and Z is second dimension - ie, IN10x14 - need to turn it into 10INX14IN
             string inOrCm = filmSizeString.Substring(0, 2);
             string[] numbers = filmSizeString.Substring(2).Split("x".ToCharArray());
             if (numbers.Length == 2)
                 result = String.Format(CultureInfo.InvariantCulture, "{0}{1}X{2}{1}", numbers[0], inOrCm, numbers[1]);
             else
             {
                 // TODO: put warning somewhere...
                 result = String.Empty;
             }
         }
     }
     return result;
 }
        public void Empty_DicomString_Test()
        {
            var filmSize = FilmSize.FromDicomString(string.Empty);

            Assert.IsNull(filmSize);
        }
 public void Lower_Case_X_Test()
 {
     FilmSize.FromDicomString("11MMx22MM");
 }
        public void Null_DicomString_Test()
        {
            var filmSize = FilmSize.FromDicomString(null);

            Assert.IsNull(filmSize);
        }
Exemple #5
0
 public void Two_Different_Units_Test()
 {
     FilmSize.FromDicomString("11INX22CM");
 }
Exemple #6
0
 public void Invalid_Units_Test()
 {
     FilmSize.FromDicomString("11MMX22MM");
 }
Exemple #7
0
        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);
        }
        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
            };;
        }