←Select platform

ViewPerspective Property

Summary
Indicates the expected orientation of the image data.
Syntax
C#
C++/CLI
Python
public RasterViewPerspective ViewPerspective { get; set; } 
public: 
property RasterViewPerspective ViewPerspective { 
   RasterViewPerspective get(); 
   void set (    RasterViewPerspective ); 
} 
ViewPerspective # get and set (RasterPaintDibInfo) 

Property Value

See the Leadtools.RasterViewPerspective enumeration for possible values.

Remarks

You will most likely have to pass RasterViewPerspective.TopLeft or RasterViewPerspective.BottomLeft for this value.

Regular GDI functions expect the data to be upside-down (RasterViewPerspective.BottomLeft), but some cards want data to be in the more logical top-down order (RasterViewPerspective.TopLeft).

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:\LEADTOOLS23\Resources\Images"; 
} 
Requirements

Target Platforms

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

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