ImageTransparency.vb
'' 
'' このコードは、DioDocs for PDF のサンプルの一部として提供されています。
'' © MESCIUS inc. All rights reserved.
'' 
Imports System.IO
Imports System.Drawing
Imports GrapeCity.Documents.Pdf
Imports GrapeCity.Documents.Text
Imports GrapeCity.Documents.Drawing
Imports GCTEXT = GrapeCity.Documents.Text
Imports GCDRAW = GrapeCity.Documents.Drawing

'' このサンプルは、特定の透明度(不透明度)を使用して画像を描画できることを示します。
Public Class ImageTransparency
    Function CreatePDF(ByVal stream As Stream) As Integer
        Dim doc = New GcPdfDocument()
        Dim page = doc.NewPage()
        Dim g = page.Graphics

        Dim rc = Util.AddNote(
            "GcPdfGraphics.DrawImage() メソッドは、指定された不透明度で画像をレンダリングすることを" +
            "可能にします。下の図は、不透明度0.2(ほぼ透明)、0.5(中程度の透明度)、1(不透明度)を" +
            "使用して画像を描画したランダムなテキストです。",
            page)

        Dim 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(Util.getString_ja(1, 0, 20))
        tl.PerformLayout(True)
        g.DrawTextLayout(tl, PointF.Empty)

        Using img As GCDRAW.Image = GCDRAW.Image.FromFile(Path.Combine("Resources", "Images", "puffins.jpg"))
            Dim imageRc = New RectangleF(tl.MarginLeft, tl.MarginTop, 144, 144)
            '' 不透明度 0.2。
            g.DrawImage(img, imageRc, Nothing, ImageAlign.ScaleImage, 0.2F)
            imageRc.Offset(imageRc.Width + 36, 0)
            '' 不透明度 0.5。
            g.DrawImage(img, imageRc, Nothing, ImageAlign.ScaleImage, 0.5F)
            imageRc.Offset(imageRc.Width + 36, 0)
            '' 不透明度 1(デフォルト)。
            g.DrawImage(img, imageRc, Nothing, ImageAlign.ScaleImage)

            '' 注意: 使用された画像を破棄する前にドキュメントを保存する必要があります。
            doc.Save(stream)
        End Using
        Return doc.Pages.Count
    End Function
End Class