The example demonstrates how to use blend modes – a way how intersecting semi-transparent objects will blend on page canvas using ByteScout PDF SDK.
Program.vb:
VB
'*******************************************************************
' ByteScout PDF SDK
'
' Copyright © 2016 Bytescout, https://bytescout.com
' ALL RIGHTS RESERVED
'
'*******************************************************************
Imports Bytescout.PDF
''' <summary>
''' This example demonstrates how to use blend modes - a way how
''' intersecting semi-transparent objects will blend on page canvas.
''' </summary>
Class Program
Shared Sub Main()
' Create new document
Dim pdfDocument = New Document()
pdfDocument.RegistrationName = "demo"
pdfDocument.RegistrationKey = "demo"
' Add page
Dim page = New Page(PaperFormat.A4)
pdfDocument.Pages.Add(page)
Dim canvas = page.Canvas
' Create transparent brushes
Dim brushRed = New SolidBrush(New ColorRGB(255, 0, 0))
brushRed.Opacity = 50
Dim brushGreen = New SolidBrush(New ColorRGB(0, 255, 0))
brushGreen.Opacity = 50
Dim brushBlue = New SolidBrush(New ColorRGB(0, 0, 255))
brushBlue.Opacity = 50
' Normal blending
canvas.BlendMode = BlendMode.Normal
canvas.DrawCircle(brushRed, 100, 100, 50)
canvas.DrawCircle(brushGreen, 100, 150, 50)
canvas.DrawCircle(brushBlue, 150, 100, 50)
' Darken blending
canvas.BlendMode = BlendMode.Darken
canvas.DrawCircle(brushRed, 300, 100, 50)
canvas.DrawCircle(brushGreen, 300, 150, 50)
canvas.DrawCircle(brushBlue, 350, 100, 50)
' Lighten blending
canvas.BlendMode = BlendMode.Lighten
canvas.DrawCircle(brushRed, 100, 300, 50)
canvas.DrawCircle(brushGreen, 100, 350, 50)
canvas.DrawCircle(brushBlue, 150, 300, 50)
' Color burn blending
canvas.BlendMode = BlendMode.ColorBurn
canvas.DrawCircle(brushRed, 300, 300, 50)
canvas.DrawCircle(brushGreen, 300, 350, 50)
canvas.DrawCircle(brushBlue, 350, 300, 50)
' Save document to file
pdfDocument.Save("result.pdf")
' Cleanup
pdfDocument.Dispose()
' Open document in default PDF viewer app
Process.Start("result.pdf")
End Sub
End Class
Program.cs:
C#
//*******************************************************************
// ByteScout PDF SDK
//
// Copyright © 2016 ByteScout - https://bytescout.com
// ALL RIGHTS RESERVED
//
//*******************************************************************
using System.Diagnostics;
using Bytescout.PDF;
namespace BlendModeExample
{
/// <summary>
/// This example demonstrates how to use blend modes - a way how
/// intersecting semi-transparent objects will blend on page canvas.
/// </summary>
class Program
{
static void Main()
{
// Create new document
Document pdfDocument = new Document();
pdfDocument.RegistrationName = "demo";
pdfDocument.RegistrationKey = "demo";
// Add page
Page page = new Page(PaperFormat.A4);
pdfDocument.Pages.Add(page);
Canvas canvas = page.Canvas;
// Create transparent brushes
SolidBrush brushRed = new SolidBrush(new ColorRGB(255, 0, 0));
brushRed.Opacity = 50;
SolidBrush brushGreen = new SolidBrush(new ColorRGB(0, 255, 0));
brushGreen.Opacity = 50;
SolidBrush brushBlue = new SolidBrush(new ColorRGB(0, 0, 255));
brushBlue.Opacity = 50;
// Normal blending
canvas.BlendMode = BlendMode.Normal;
canvas.DrawCircle(brushRed, 100, 100, 50);
canvas.DrawCircle(brushGreen, 100, 150, 50);
canvas.DrawCircle(brushBlue, 150, 100, 50);
// Darken blending
canvas.BlendMode = BlendMode.Darken;
canvas.DrawCircle(brushRed, 300, 100, 50);
canvas.DrawCircle(brushGreen, 300, 150, 50);
canvas.DrawCircle(brushBlue, 350, 100, 50);
// Lighten blending
canvas.BlendMode = BlendMode.Lighten;
canvas.DrawCircle(brushRed, 100, 300, 50);
canvas.DrawCircle(brushGreen, 100, 350, 50);
canvas.DrawCircle(brushBlue, 150, 300, 50);
// Color burn blending
canvas.BlendMode = BlendMode.ColorBurn;
canvas.DrawCircle(brushRed, 300, 300, 50);
canvas.DrawCircle(brushGreen, 300, 350, 50);
canvas.DrawCircle(brushBlue, 350, 300, 50);
// Save document to file
pdfDocument.Save("result.pdf");
// Cleanup
pdfDocument.Dispose();
// Open document in default PDF viewer app
Process.Start("result.pdf");
}
}
}