Imports Leadtools.WinForms
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.ImageProcessing.Color
Imports Leadtools.Drawing
'''
' center the loaded image in the middle of rasterImageViewer if the image smaller than the viewer size
Private Sub centerImage(ByVal viewer As RasterImageViewer)
' do center only when RasterViewerSizeMode == Normal
If viewer.SizeMode = RasterPaintSizeMode.Normal Then
If viewer.IsImageAvailable = True Then
If Not viewer.Image Is Nothing Then
Dim viewerWidth As Integer = viewer.Right - viewer.Left
Dim viewerHeight As Integer = viewer.Bottom - viewer.Top
Dim imageWidth As Integer = CInt(viewer.LogicalViewRectangle.Width * viewer.ScaleFactor)
Dim imageHeight As Integer = CInt(viewer.LogicalViewRectangle.Height * viewer.ScaleFactor)
If imageWidth < viewerWidth Then
viewer.BorderPadding.Left = (viewerWidth - imageWidth) \ 2
Else
viewer.BorderPadding.Left = 0
End If
If imageHeight < viewerHeight Then
viewer.BorderPadding.Top = (viewerHeight - imageHeight) \ 2
Else
viewer.BorderPadding.Top = 0
End If
End If
End If
End If
End Sub
Private Sub viewer_TransformedChanged(ByVal sender As Object, ByVal e As EventArgs)
Dim viewer As RasterImageViewer = CType(IIf(TypeOf sender Is RasterImageViewer, sender, Nothing), RasterImageViewer)
Dim s As String = String.Format("Transform: {0} {1} {2} {3} {4} {5}", viewer.Transform.Elements(0), viewer.Transform.Elements(1), _
viewer.Transform.Elements(2), viewer.Transform.Elements(3), viewer.Transform.Elements(4), _
viewer.Transform.Elements(5))
Console.WriteLine(s)
End Sub
Public Sub RasterImageViewer_BeginUpdate(ByVal viewer As RasterImageViewer)
AddHandler viewer.TransformChanged, AddressOf viewer_TransformedChanged
viewer.BeginUpdate() ' suspend painting of the image
viewer.ScaleFactor = viewer.ScaleFactor * 0.9F
centerImage(viewer)
viewer.EndUpdate() ' start painting of the image
RemoveHandler viewer.TransformChanged, AddressOf viewer_TransformedChanged
End Sub
using Leadtools.WinForms;
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing.Color;
using Leadtools.Drawing;
///
// center the loaded image in the middle of rasterImageViewer if the image smaller than the viewer size
private void centerImage(RasterImageViewer viewer)
{
// do center only when RasterViewerSizeMode == Normal
if (viewer.SizeMode == RasterPaintSizeMode.Normal)
{
if (viewer.IsImageAvailable == true)
{
if (viewer.Image != null)
{
int viewerWidth = viewer.Right - viewer.Left;
int viewerHeight = viewer.Bottom - viewer.Top;
int imageWidth = (int)(viewer.LogicalViewRectangle.Width * viewer.ScaleFactor);
int imageHeight = (int)(viewer.LogicalViewRectangle.Height * viewer.ScaleFactor);
if (imageWidth < viewerWidth)
viewer.BorderPadding.Left = (viewerWidth - imageWidth) / 2;
else
viewer.BorderPadding.Left = 0;
if (imageHeight < viewerHeight)
viewer.BorderPadding.Top = (viewerHeight - imageHeight) / 2;
else
viewer.BorderPadding.Top = 0;
}
}
}
}
private void viewer_TransformedChanged(object sender, EventArgs e)
{
RasterImageViewer viewer = sender as RasterImageViewer;
string s = string.Format("Transform: {0} {1} {2} {3} {4} {5}",
viewer.Transform.Elements[0],
viewer.Transform.Elements[1],
viewer.Transform.Elements[2],
viewer.Transform.Elements[3],
viewer.Transform.Elements[4],
viewer.Transform.Elements[5]);
Console.WriteLine(s);
}
public void RasterImageViewer_BeginUpdate(RasterImageViewer viewer)
{
viewer.TransformChanged += new EventHandler(viewer_TransformedChanged);
viewer.BeginUpdate(); // suspend painting of the image
viewer.ScaleFactor = viewer.ScaleFactor * 0.9F;
centerImage(viewer);
viewer.EndUpdate(); // start painting of the image
viewer.TransformChanged -= new EventHandler(viewer_TransformedChanged);
}