←Select platform

HighBit Property

Summary
Indicates the high bit of the image data (valid only for grayscale 12 or 16-bit data).
Syntax
C#
C++/CLI
Python
public int HighBit { get; set; } 
public: 
property int HighBit { 
   int get(); 
   void set (    int ); 
} 
HighBit # get and set (RasterPaintDibInfo) 

Property Value

Valid values are LowBit through BitsPerPixel - 1.

Remarks

Used in conjunction with LowBit to specify if the data does not occupy the full range

This is valid only if Flags has RasterPaintDibInfoFlags.LowHighBitValid set.

Example
C#
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Drawing; 
 
 
 
public void RasterPaintPropertiesExample() 
{ 
    // Create the form  
    RasterPaintDibInfo_Example f = new RasterPaintDibInfo_Example(); 
    f.ShowDialog(); 
} 
 
public void AddCallBack() 
{ 
    // Load the image 
    RasterCodecs codecs = new RasterCodecs(); 
    string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Ocr1.tif"); 
    image = codecs.Load(srcFileName); 
 
    // Whenever the Leadtools.RasterImage object needs to paint, 
    // it searches through the RasterPaintProperties.PaintCallbacks list until it finds 
    // a compatible RasterPaintCallbacks object. If the list is empty or there is no compatible 
    // RasterPaintCallbacks object, the default paint functions are used. 
    RasterPaintCallbacks cb = new RasterPaintCallbacks(); 
    cb.SetCallback(RasterImagePaintCallbackFunction.GetDibInfoCallback, DibFunctionDelegate); 
    props = RasterPaintProperties.Default; 
    props.PaintDisplayMode = RasterPaintDisplayModeFlags.FastPaint; 
    props.PaintCallbacks.Add(cb); 
    props.PaintEngine = RasterPaintEngine.GdiPlus; 
}        
 
private object DibFunctionDelegate(RasterImage image, object[] args) 
{ 
    // Describe the image data expected by the custom paint callback: 
    // RasterImagePaintCallbackFunction.GetDibInfoCallback. 
    // 
    // Set and use as needed in application, in this case the values are taken from image. 
    // Then return the updated RasterPaintDibInfo  
 
    rasterPaintDibInfo.BitsPerPixel = image.BitsPerPixel; 
    rasterPaintDibInfo.BytesPerLine =  Convert.ToUInt32(image.BytesPerLine); 
    rasterPaintDibInfo.Flags = RasterPaintDibInfoFlags.LowHighBitValid | RasterPaintDibInfoFlags.IgnoreLut; 
    rasterPaintDibInfo.Order = RasterByteOrder.Bgr; 
    rasterPaintDibInfo.ViewPerspective = RasterViewPerspective.RightTop; 
    return rasterPaintDibInfo; 
} 
 
public void RasterImagePainterPaint(PaintEventArgs e) 
{ 
    // Draw the image fit and center on this form 
    LeadRect destRect = LeadRect.FromLTRB(ClientRectangle.Left, ClientRectangle.Top, ClientRectangle.Right, ClientRectangle.Bottom); 
    destRect = RasterImage.CalculatePaintModeRectangle( 
       image.ImageWidth, 
       image.ImageHeight, 
       destRect, 
       RasterPaintSizeMode.Fit, 
       RasterPaintAlignMode.Center, 
       RasterPaintAlignMode.Center); 
    RasterImagePainter.Paint(image, e.Graphics, LeadRect.Empty, destRect, props); 
} 
 
protected override void OnPaint(PaintEventArgs e) 
{ 
    RasterImagePainterPaint(e); 
 
    base.OnPaint(e); 
} 
 
protected override void OnDoubleClick(EventArgs e) 
{ 
 
    if ((props.PaintDisplayMode & RasterPaintDisplayModeFlags.ScaleToGray) == RasterPaintDisplayModeFlags.ScaleToGray) 
    { 
        Text = "Normal - doubleclick to change."; 
        props.PaintDisplayMode &= ~RasterPaintDisplayModeFlags.ScaleToGray; 
    } 
    else 
    { 
        Text = "ScaleToGray - doubleclick to change."; 
        props.PaintDisplayMode |= RasterPaintDisplayModeFlags.ScaleToGray; 
    } 
 
    Invalidate(); 
 
    base.OnDoubleClick(e); 
} 
 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images"; 
} 
Requirements

Target Platforms

Help Version 22.0.2023.3.31
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Drawing Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.