Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.Drawing
Imports Leadtools.ImageProcessing
Imports Leadtools.ImageProcessing.Color
<TestMethod()> _
Public Sub AddRegionToRegionGdip_Example()
Dim codecs As New RasterCodecs()
Dim srcFileName As String = LeadtoolsExamples.Common.ImagesPath.Path + "Image1.cmp"
Dim destFileName1 As String = LeadtoolsExamples.Common.ImagesPath.Path + "Image1_ConvertToRegion.bmp"
Dim destFileName2 As String = LeadtoolsExamples.Common.ImagesPath.Path + "Image1_AddRegionToRegion.bmp"
' Load the image
Dim image As RasterImage = codecs.Load(srcFileName)
' Add an ellipse inside a rectangle region to the image
Dim rc As New LeadRect(image.Width \ 3, image.Height \ 3, image.Width \ 3, image.Height \ 3)
image.AddEllipseToRegion(Nothing, rc, RasterRegionCombineMode.Set)
' Create a GDI+ image from this raster image, then obtain a Graphics
' object to the GDI+ image, apply the region to it then fill it with red color
Dim region As Region
Using gdiPlusImage As Image = RasterImageConverter.ConvertToImage(image, ConvertToImageOptions.None)
Using graphics As Graphics = graphics.FromImage(gdiPlusImage)
Using rasterRegion As RasterRegion = image.GetRegion(Nothing)
region = RasterRegionConverter.ConvertToRegion(rasterRegion, Nothing)
graphics.Clip = region
' This call should only fill the ellipse
graphics.FillRectangle(Brushes.Red, 0, 0, image.Width, image.Height)
End Using
End Using
gdiPlusImage.Save(destFileName1, ImageFormat.Bmp)
End Using
' Empty the region in the raster image and re-add it through the
' region object we got with AddRegionToRegion
image.MakeRegionEmpty()
RasterRegionConverter.AddRegionToRegion(image, Nothing, region, RasterRegionCombineMode.Set)
Dim command As New FillCommand()
command.Color = RasterColor.FromKnownColor(RasterKnownColor.Red)
command.Run(image)
codecs.Save(image, destFileName2, RasterImageFormat.Bmp, 24)
region.Dispose()
image.Dispose()
codecs.Dispose()
End Sub
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Drawing;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Color;
public void AddRegionToRegionGdip_Example()
{
RasterCodecs codecs = new RasterCodecs();
string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp");
string destFileName1 = Path.Combine(LEAD_VARS.ImagesDir, "Image1_ConvertToRegion.bmp");
string destFileName2 = Path.Combine(LEAD_VARS.ImagesDir, "Image1_AddRegionToRegion.bmp");
// Load the image
RasterImage image = codecs.Load(srcFileName);
// Add an ellipse inside a rectangle region to the image
LeadRect rc = new LeadRect(image.Width / 3, image.Height / 3, image.Width / 3, image.Height / 3);
image.AddEllipseToRegion(null, rc, RasterRegionCombineMode.Set);
// Create a GDI+ image from this raster image, then obtain a Graphics
// object to the GDI+ image, apply the region to it then fill it with red color
Region region;
using(Image gdiPlusImage = RasterImageConverter.ConvertToImage(image, ConvertToImageOptions.None))
{
using(Graphics graphics = Graphics.FromImage(gdiPlusImage))
{
using(RasterRegion rasterRegion = image.GetRegion(null))
{
region = RasterRegionConverter.ConvertToRegion(rasterRegion, null);
graphics.Clip = region;
// This call should only fill the ellipse
graphics.FillRectangle(Brushes.Red, 0, 0, image.Width, image.Height);
}
}
gdiPlusImage.Save(destFileName1, ImageFormat.Bmp);
}
// Empty the region in the raster image and re-add it through the
// region object we got with AddRegionToRegion
image.MakeRegionEmpty();
RasterRegionConverter.AddRegionToRegion(image, null, region, RasterRegionCombineMode.Set);
FillCommand command = new FillCommand();
command.Color = RasterColor.FromKnownColor(RasterKnownColor.Red);
command.Run(image);
codecs.Save(image, destFileName2, RasterImageFormat.Bmp, 24);
region.Dispose();
image.Dispose();
codecs.Dispose();
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}