/// ------------------------------------------------------------------------------ /// <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; } }
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); } } }