Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.ImageProcessing
Imports Leadtools.ImageProcessing.Color
Imports Leadtools.Drawing
Imports Leadtools.Svg
Public Sub StampExample()
Dim codecs As RasterCodecs = New RasterCodecs()
Dim srcFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp")
Dim destFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1_WithCustomStamp.cmp")
Dim stampFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1_Stamp.bmp")
' Load the source file name
Dim image As RasterImage = codecs.Load(srcFileName)
' Save as the destination image
codecs.Save(image, destFileName, RasterImageFormat.Cmp, 24)
' Resize the image to fit into 128 by 128 pixels keeping the aspect ratio
Dim rc As LeadRect = New LeadRect(0, 0, 128, 128)
rc = RasterImage.CalculatePaintModeRectangle(image.ImageWidth, image.ImageHeight, rc, RasterPaintSizeMode.FitAlways, RasterPaintAlignMode.Near, RasterPaintAlignMode.Near)
Dim command As SizeCommand = New SizeCommand()
command.Width = rc.Width
command.Height = rc.Height
command.Flags = RasterSizeFlags.None
command.Run(image)
' Add the word "Stamp" on the image at the middle
Dim message As String = "Stamp"
Using rg As RasterGraphics = RasterImagePainter.CreateGraphics(image)
Using sf As New System.Drawing.StringFormat()
sf.Alignment = System.Drawing.StringAlignment.Center
sf.LineAlignment = System.Drawing.StringAlignment.Center
Using f As New System.Drawing.Font("Arial", 20, System.Drawing.FontStyle.Bold)
Dim rcDraw As New System.Drawing.Rectangle(rc.X, rc.Y, rc.Width, rc.Height)
rg.Graphics.DrawString(message, f, System.Drawing.Brushes.Yellow, rcDraw, sf)
End Using
End Using
End Using
' Now set this image as the stamp for this file
codecs.SaveStamp(image, destFileName, 1, 1, 1, CodecsSavePageMode.Overwrite)
image.Dispose()
' Load the stamp from the file and save it into another file
image = codecs.ReadStamp(destFileName, 1)
codecs.Save(image, stampFileName, RasterImageFormat.Bmp, 24)
image.Dispose()
' Clean up
codecs.Dispose()
End Sub
Public NotInheritable Class LEAD_VARS
Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Color;
using Leadtools.Svg;
public void StampExample()
{
RasterCodecs codecs = new RasterCodecs();
string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp");
string destFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1_WithCustomStamp.cmp");
string stampFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1_Stamp.bmp");
// Load the source file name
RasterImage image = codecs.Load(srcFileName);
// Save as the destination image
codecs.Save(image, destFileName, RasterImageFormat.Cmp, 24);
// Resize the image to fit into 128 by 128 pixels keeping the aspect ratio
LeadRect rc = new LeadRect(0, 0, 128, 128);
rc = RasterImage.CalculatePaintModeRectangle(
image.ImageWidth,
image.ImageHeight,
rc,
RasterPaintSizeMode.FitAlways,
RasterPaintAlignMode.Near,
RasterPaintAlignMode.Near);
SizeCommand command = new SizeCommand();
command.Width = rc.Width;
command.Height = rc.Height;
command.Flags = RasterSizeFlags.None;
command.Run(image);
// Add the word "Stamp" on the image at the middle
string message = "Stamp";
using (Leadtools.Drawing.RasterGraphics rg = Leadtools.Drawing.RasterImagePainter.CreateGraphics(image))
{
using (System.Drawing.StringFormat sf = new System.Drawing.StringFormat())
{
sf.Alignment = System.Drawing.StringAlignment.Center;
sf.LineAlignment = System.Drawing.StringAlignment.Center;
using (System.Drawing.Font f = new System.Drawing.Font("Arial", 20, System.Drawing.FontStyle.Bold))
{
System.Drawing.Rectangle rcDraw = new System.Drawing.Rectangle(rc.X, rc.Y, rc.Width, rc.Height);
rg.Graphics.DrawString(message, f, System.Drawing.Brushes.Yellow, rcDraw, sf);
}
}
}
// Now set this image as the stamp for this file
codecs.SaveStamp(image, destFileName, 1, 1, 1, CodecsSavePageMode.Overwrite);
image.Dispose();
// Load the stamp from the file and save it into another file
image = codecs.ReadStamp(destFileName, 1);
codecs.Save(image, stampFileName, RasterImageFormat.Bmp, 24);
image.Dispose();
// Clean up
codecs.Dispose();
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}
RasterCodecsExamples.prototype.StampExample = function ( )
{
Tools.SetLicense ( ) ;
with (Leadtools) {
with (Leadtools.Codecs) {
var codecs = new RasterCodecs();
var srcFileName = "Assets\\Image1.cmp";
var destFileName = "Image1_WithCustomStamp.cmp";
var stampFileName = "Image1_Stamp.bmp";
var image;
var saveFile;
// Load the source file name
return Tools.AppInstallFolder().getFileAsync(srcFileName).then(function (loadFile) {
return codecs.loadAsync(LeadStreamFactory.create(loadFile))
})
.then(function (img) {
image = img;
// Save as the destination image
return Tools.AppLocalFolder().createFileAsync(destFileName)
})
.then(function (saveFileX) {
saveFile = saveFileX;
return codecs.saveAsync(image, LeadStreamFactory.create(saveFile), RasterImageFormat.cmp, 24)
})
.then(function () {
// Resize the image to fit into 128 by 128 pixels keeping the aspect ratio
var rc = LeadRectHelper.create(0, 0, 128, 128);
rc = RasterImage.calculatePaintModeRectangle(
image.imageWidth,
image.imageHeight,
rc,
RasterPaintSizeMode.fitAlways,
RasterPaintAlignMode.near,
RasterPaintAlignMode.near);
var command = new Leadtools.ImageProcessing.SizeCommand();
command.width = rc.width;
command.height = rc.height;
command.flags = RasterSizeFlags.none;
command.run(image);
// Now set this image as the stamp for this file
return Tools.AppLocalFolder().getFileAsync(destFileName)
})
.then(function (saveFile) {
return codecs.saveStampAsync(image, LeadStreamFactory.create(saveFile), 1, 1, 1, CodecsSavePageMode.overwrite)
})
.then(function () {
image.close();
// Load the stamp from the file and save it into another file
return codecs.readStampAsync(LeadStreamFactory.create(saveFile), 1)
})
.then(function (img) {
image = img;
return Tools.AppLocalFolder().createFileAsync(stampFileName)
})
.then(function (saveFile) {
return codecs.saveAsync(image, LeadStreamFactory.create(saveFile), RasterImageFormat.bmp, 24)
})
.then(function () {
image.close();
// Clean up
codecs.close();
});
}
}
}
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Color;
public async Task StampExample()
{
RasterCodecs codecs = new RasterCodecs();
string srcFileName = @"Assets\Image1.cmp";
string destFileName = @"Image1_WithCustomStamp.cmp";
string stampFileName = @"Image1_Stamp.bmp";
// Load the source file name
StorageFile loadFile = await Tools.AppInstallFolder.GetFileAsync(srcFileName);
RasterImage image = await codecs.LoadAsync(LeadStreamFactory.Create(loadFile));
// Save as the destination image
StorageFile saveFile = await Tools.AppLocalFolder.CreateFileAsync(destFileName);
await codecs.SaveAsync(image, LeadStreamFactory.Create(saveFile), RasterImageFormat.Cmp, 24);
// Resize the image to fit into 128 by 128 pixels keeping the aspect ratio
LeadRect rc = LeadRectHelper.Create(0, 0, 128, 128);
rc = RasterImage.CalculatePaintModeRectangle(
image.ImageWidth,
image.ImageHeight,
rc,
RasterPaintSizeMode.FitAlways,
RasterPaintAlignMode.Near,
RasterPaintAlignMode.Near);
SizeCommand command = new SizeCommand();
command.Width = rc.Width;
command.Height = rc.Height;
command.Flags = RasterSizeFlags.None;
command.Run(image);
// Now set this image as the stamp for this file
saveFile = await Tools.AppLocalFolder.GetFileAsync(destFileName);
await codecs.SaveStampAsync(image, LeadStreamFactory.Create(saveFile), 1, 1, 1, CodecsSavePageMode.Overwrite);
image.Dispose();
// Load the stamp from the file and save it into another file
image = await codecs.ReadStampAsync(LeadStreamFactory.Create(saveFile), 1);
saveFile = await Tools.AppLocalFolder.CreateFileAsync(stampFileName);
await codecs.SaveAsync(image, LeadStreamFactory.Create(saveFile), RasterImageFormat.Bmp, 24);
image.Dispose();
// Clean up
codecs.Dispose();
}
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Examples;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Color;
using Leadtools.Windows.Media;
private void StampExample(RasterImage image, Stream outStreamFileWithStamp, Stream outStreamStampOnly)
{
RasterCodecs codecs = new RasterCodecs();
// Save as the destination image
codecs.Save(image, outStreamFileWithStamp, RasterImageFormat.Cmp, 24);
// Resize the image to fit into 128 by 128 pixels keeping the aspect ratio
LeadRect rc = new LeadRect(0, 0, 128, 128);
rc = RasterImage.CalculatePaintModeRectangle(
image.ImageWidth,
image.ImageHeight,
rc,
RasterPaintSizeMode.FitAlways,
RasterPaintAlignMode.Near,
RasterPaintAlignMode.Near);
SizeCommand command = new SizeCommand();
command.Width = rc.Width;
command.Height = rc.Height;
command.Flags = RasterSizeFlags.None;
command.Run(image);
// Add the word "Stamp" on the image at the middle
string message = "Stamp";
// To add "Stamp", we will create a WriteableBitmap from the RasterImage
// then add a canvas and a text block on top of it
// Create a writeable bitmap from the image source
WriteableBitmap bitmap = new WriteableBitmap(image.ImageWidth, image.ImageHeight);
// The white background canvas
Canvas canvas = new Canvas();
canvas.Width = image.ImageWidth;
canvas.Height = image.ImageHeight;
// Get the RasterImage as an ImageSource
ImageSource source = RasterImageConverter.ConvertToSource(image, ConvertToSourceOptions.UseSetSource);
// The image for the ImageSource
Image img = new Image();
img.Source = source;
// The black text block
TextBlock textBlock = new TextBlock();
textBlock.FontFamily = new FontFamily("Arial");
textBlock.FontSize = 20;
textBlock.Text = message;
textBlock.Foreground = new SolidColorBrush(Color.FromArgb(255, 0, 0, 0));
// Add the image source and the text block
canvas.Children.Add(img);
canvas.Children.Add(textBlock);
// Center the text
double left = (canvas.Width - textBlock.ActualWidth) / 2;
double top = (canvas.Height - textBlock.ActualHeight) / 2;
textBlock.SetValue(Canvas.LeftProperty, left);
textBlock.SetValue(Canvas.TopProperty, top);
// Render
bitmap.Render(canvas, null);
bitmap.Invalidate();
image.Dispose();
// Re-create the RasterImage from the WriteableBitmap
image = RasterImageConverter.ConvertFromSource(bitmap, ConvertFromSourceOptions.None);
// stamp has to be 24-bit, so convert it back
ColorResolutionCommand cmd = new ColorResolutionCommand();
cmd.BitsPerPixel = 24;
cmd.Run(image);
// This image contains the stamp, save it to the output stream
codecs.SaveStamp(image, outStreamFileWithStamp);
image.Dispose();
// Load the stamp from the file and save it to the other output stream
image = codecs.ReadStamp(outStreamFileWithStamp, 1);
codecs.Save(image, outStreamStampOnly, RasterImageFormat.Bmp, 24);
image.Dispose();
}
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.ImageProcessing
Imports Leadtools.ImageProcessing.Color
Imports Leadtools.Windows.Media
Private Sub StampExample(ByVal image As RasterImage, ByVal outStreamFileWithStamp As Stream, ByVal outStreamStampOnly As Stream)
Dim codecs As RasterCodecs = New RasterCodecs()
' Save as the destination image
codecs.Save(image, outStreamFileWithStamp, RasterImageFormat.Cmp, 24)
' Resize the image to fit into 128 by 128 pixels keeping the aspect ratio
Dim rc As LeadRect = New LeadRect(0, 0, 128, 128)
rc = RasterImage.CalculatePaintModeRectangle(image.ImageWidth, image.ImageHeight, rc, RasterPaintSizeMode.FitAlways, RasterPaintAlignMode.Near, RasterPaintAlignMode.Near)
Dim command As SizeCommand = New SizeCommand()
command.Width = rc.Width
command.Height = rc.Height
command.Flags = RasterSizeFlags.None
command.Run(image)
' Add the word "Stamp" on the image at the middle
Dim message As String = "Stamp"
' To add "Stamp", we will create a WriteableBitmap from the RasterImage
' then add a canvas and a text block on top of it
' Create a writeable bitmap from the image source
Dim bitmap As WriteableBitmap = New WriteableBitmap(image.ImageWidth, image.ImageHeight)
' The white background canvas
Dim canvas As Canvas = New Canvas()
canvas.Width = image.ImageWidth
canvas.Height = image.ImageHeight
' Get the RasterImage as an ImageSource
Dim source As ImageSource = RasterImageConverter.ConvertToSource(image, ConvertToSourceOptions.UseSetSource)
' The image for the ImageSource
Dim img As Image = New Image()
img.Source = source
' The black text block
Dim textBlock As TextBlock = New TextBlock()
textBlock.FontFamily = New FontFamily("Arial")
textBlock.FontSize = 20
textBlock.Text = message
textBlock.Foreground = New SolidColorBrush(Color.FromArgb(255, 0, 0, 0))
' Add the image source and the text block
canvas.Children.Add(img)
canvas.Children.Add(textBlock)
' Center the text
Dim left As Double = (canvas.Width - textBlock.ActualWidth) / 2
Dim top As Double = (canvas.Height - textBlock.ActualHeight) / 2
textBlock.SetValue(Canvas.LeftProperty, left)
textBlock.SetValue(Canvas.TopProperty, top)
' Render
bitmap.Render(canvas, Nothing)
bitmap.Invalidate()
image.Dispose()
' Re-create the RasterImage from the WriteableBitmap
image = RasterImageConverter.ConvertFromSource(bitmap, ConvertFromSourceOptions.None)
' stamp has to be 24-bit, so convert it back
Dim cmd As ColorResolutionCommand = New ColorResolutionCommand()
cmd.BitsPerPixel = 24
cmd.Run(image)
' This image contains the stamp, save it to the output stream
codecs.SaveStamp(image, outStreamFileWithStamp)
image.Dispose()
' Load the stamp from the file and save it to the other output stream
image = codecs.ReadStamp(outStreamFileWithStamp, 1)
codecs.Save(image, outStreamStampOnly, RasterImageFormat.Bmp, 24)
image.Dispose()
End Sub