예제 #1
0
        /// ------------------------------------------------------------------------------
        /// <summary>
        ///     伝票画像表示 </summary>
        /// <param name="iX">
        ///     現在の伝票</param>
        /// <param name="tempImgName">
        ///     画像名</param>
        /// ------------------------------------------------------------------------------
        public void ShowImage(string tempImgName)
        {
            //修正画面へ組み入れた画像フォームの表示
            //画像の出力が無い場合は、画像表示をしない。
            if (tempImgName == string.Empty)
            {
                leadImg.Visible     = false;
                lblNoImage.Visible  = false;
                global.pblImagePath = string.Empty;
                return;
            }

            //画像ファイルがあるとき表示
            if (System.IO.File.Exists(tempImgName))
            {
                lblNoImage.Visible = false;
                leadImg.Visible    = true;

                // 画像操作ボタン
                btnPlus.Enabled  = true;
                btnMinus.Enabled = true;

                //画像ロード
                Leadtools.Codecs.RasterCodecs.Startup();
                Leadtools.Codecs.RasterCodecs cs = new Leadtools.Codecs.RasterCodecs();

                // 描画時に使用される速度、品質、およびスタイルを制御します。
                Leadtools.RasterPaintProperties prop = new Leadtools.RasterPaintProperties();
                prop = Leadtools.RasterPaintProperties.Default;
                prop.PaintDisplayMode   = Leadtools.RasterPaintDisplayModeFlags.Resample;
                leadImg.PaintProperties = prop;

                leadImg.Image = cs.Load(tempImgName, 0, Leadtools.Codecs.CodecsLoadByteOrder.BgrOrGray, 1, 1);

                //画像表示倍率設定
                if (global.miMdlZoomRate == 0f)
                {
                    leadImg.ScaleFactor *= global.ZOOM_RATE;
                }
                else
                {
                    leadImg.ScaleFactor *= global.miMdlZoomRate;
                }

                //画像のマウスによる移動を可能とする
                leadImg.InteractiveMode = Leadtools.WinForms.RasterViewerInteractiveMode.Pan;

                // グレースケールに変換
                Leadtools.ImageProcessing.GrayscaleCommand grayScaleCommand = new Leadtools.ImageProcessing.GrayscaleCommand();
                grayScaleCommand.BitsPerPixel = 8;
                grayScaleCommand.Run(leadImg.Image);
                leadImg.Refresh();

                cs.Dispose();
                Leadtools.Codecs.RasterCodecs.Shutdown();
                //global.pblImagePath = tempImgName;
            }
            else
            {
                //画像ファイルがないとき
                lblNoImage.Visible = true;

                // 画像操作ボタン
                btnPlus.Enabled  = false;
                btnMinus.Enabled = false;

                leadImg.Visible = false;
                //global.pblImagePath = string.Empty;
            }
        }
예제 #2
0
        public void Initialize(ImageInformation info, RasterPaintProperties paintProperties, bool animateRegions, bool snap, bool useDpi)
        {
            _viewer.BeginUpdate();
            UpdateAnimateRegions(animateRegions);
            UpdatePaintProperties(paintProperties);
            _viewer.Image  = info.Image;
            _viewer.UseDpi = useDpi;
            if (_viewer.Image != null)
            {
                _viewer.Image.Changed += new EventHandler <RasterImageChangedEventArgs>(Image_Changed);
            }
            _name = info.Name;
            if (snap)
            {
                Snap();
            }
            UpdateCaption();
            _viewer.EndUpdate();

            _isWLImage  = false;
            _isMagGlass = false;

            if (_viewer.Image.GrayscaleMode != RasterGrayscaleMode.None)
            {
                switch (_viewer.Image.BitsPerPixel)
                {
                case 8:
                    if (_viewer.Image.GrayscaleMode == RasterGrayscaleMode.NotOrdered)
                    {
                        Leadtools.ImageProcessing.GrayscaleCommand cmd = new Leadtools.ImageProcessing.GrayscaleCommand(8);
                        cmd.Run(_viewer.Image);
                    }
                    _currentPalette = _viewer.Image.GetPalette();
                    _LUTSize        = 256;
                    _minValue       = 0;
                    _maxValue       = 255;
                    _isWLImage      = true;
                    break;

                case 12:
                case 16:
                    _viewer.Image.UseLookupTable = true;
                    _currentPalette = _viewer.Image.GetLookupTable();
                    _highBit        = _viewer.Image.HighBit;
                    if (_highBit == -1)
                    {
                        _highBit = _viewer.Image.BitsPerPixel - 1;
                    }
                    if (_currentPalette == null)
                    {
                        _LUTSize  = (int)Math.Pow(2, _highBit + 1);
                        _maxValue = (_viewer.Image.Signed) ? _LUTSize / 2 - 1 : _LUTSize - 1;
                        _minValue = (_viewer.Image.Signed) ? -_LUTSize / 2 : 0;
                        createPalette();
                    }
                    else
                    {
                        _LUTSize = _currentPalette.Length;
                        MinMaxValuesCommand minMaxValueCmd = new MinMaxValuesCommand();
                        minMaxValueCmd.Run(_viewer.Image);
                        _maxValue = minMaxValueCmd.MaximumValue;
                        _minValue = minMaxValueCmd.MinimumValue;
                    }
                    _isWLImage = true;
                    break;
                }
                _scale    = ((_maxValue - _minValue) / 1000 > 0) ? (_maxValue - _minValue) / 1000 : 1;
                _maxWidth = (int)Math.Pow(2, _viewer.Image.BitsPerPixel) - 1;
                _minWidth = 1;
                _maxLevel = (int)Math.Pow(2, _viewer.Image.BitsPerPixel) - 1;
                _minLevel = (int)Math.Pow(2, _viewer.Image.BitsPerPixel) * -1 + 1;

                if (_viewer.Image.Signed)
                {
                    _flags |= RasterPaletteWindowLevelFlags.Signed;
                    getWindowLevelForSigned(_currentPalette);
                }
                else
                {
                    getWindowLevelForUnSigned(_currentPalette);
                }
            }
        }