//
// This code is part of Document Solutions for PDF demos.
// Copyright (c) MESCIUS inc. All rights reserved.
//
using System;
using System.IO;
using System.Drawing;
using GrapeCity.Documents.Pdf;
using GrapeCity.Documents.Text;
using GrapeCity.Documents.Drawing;
using GCTEXT = GrapeCity.Documents.Text;
using GCDRAW = GrapeCity.Documents.Drawing;
namespace DsPdfWeb.Demos
{
// This sample demonstrates the ability of DsPdf to render
// images using a specified transparency (opacity).
public class ImageTransparency
{
public int CreatePDF(Stream stream)
{
var doc = new GcPdfDocument();
var page = doc.NewPage();
var g = page.Graphics;
var rc = Common.Util.AddNote(
"GcPdfGraphics.DrawImage() method allows rendering images with a specified opacity. " +
"Below is a random text with an image drawn on top of it using opacity 0.2 (almost transparent), " +
"0.5 (medium transparency) and 1 (non-transparent).",
page);
var tl = g.CreateTextLayout();
tl.DefaultFormat.Font = StandardFonts.Times;
tl.DefaultFormat.FontSize = 12;
tl.MaxWidth = page.Size.Width;
tl.MaxHeight = page.Size.Height;
tl.MarginAll = 36;
tl.MarginTop += rc.Bottom;
tl.Append(Common.Util.LoremIpsum(2));
tl.PerformLayout(true);
g.DrawTextLayout(tl, PointF.Empty);
using (var image = GCDRAW.Image.FromFile(Path.Combine("Resources", "Images", "puffins.jpg")))
{
var imageRc = new RectangleF(tl.MarginLeft, tl.MarginTop, 144, 144);
// Opacity 0.2:
g.DrawImage(image, imageRc, null, ImageAlign.ScaleImage, 0.2f);
imageRc.Offset(imageRc.Width + 36, 0);
// Opacity 0.5:
g.DrawImage(image, imageRc, null, ImageAlign.ScaleImage, 0.5f);
imageRc.Offset(imageRc.Width + 36, 0);
// Opacity 1 (default):
g.DrawImage(image, imageRc, null, ImageAlign.ScaleImage);
// NOTE: we must save document BEFORE disposing the image(s) used in it:
doc.Save(stream);
}
return doc.Pages.Count;
}
}
}