'' This code is part of GrapeCity Documents for Imaging samples.
'' Copyright (c) GrapeCity, Inc. All rights reserved.
Imports System.IO
Imports System.Drawing
Imports System.Collections.Generic
Imports System.Linq
Imports GrapeCity.Documents.Drawing
Imports GrapeCity.Documents.Text
Imports GrapeCity.Documents.Imaging
Imports GrapeCity.Documents.Html
Imports GCTEXT = GrapeCity.Documents.Text
Imports GCDRAW = GrapeCity.Documents.Drawing

'' This sample uses the same code as in the HelloWorld sample
'' to create an image with the "Hello, World!" text, but in addition
'' adds the GrapeCity logo copied from the GrapeCity home page
'' using GcHtml.
'' Please see notes in comments at the top of HelloWorldHtml
'' sample code for details on adding GcHtml to your projects.
Public Class GcLogoHtml
    Function GenerateImage(
        ByVal pixelSize As Size,
        ByVal dpi As Single,
        ByVal opaque As Boolean,
        Optional ByVal sampleParams As String() = Nothing) As GcBitmap

        '' The GrapeCity home page:
        Dim uri = New Uri("https://www.grapecity.com/")
        '' The coordinates of the GrapeCity logo on the home page:
        Dim logoRc = New RectangleF(5, 25, 203, 39)

        '' Create the "Hello, World!" image like in the HelloWorld sample:
        Dim blue = Color.FromArgb(&HFF2E4884)
        Dim bmp = New GcBitmap(pixelSize.Width, pixelSize.Height, True, dpi, dpi)
        Using g = bmp.CreateGraphics(blue)
            Dim rc = New RectangleF(0, 0, pixelSize.Width, pixelSize.Height)
            Dim b = New RadialGradientBrush(Color.White, blue, New PointF(0.5F, 0.5F), True)
            g.FillRectangle(rc, b)
            Dim tf = New TextFormat With
                    .Font = GCTEXT.Font.FromFile(Path.Combine("Resources", "Fonts", "timesbd.ttf")),
                    .FontSize = 64,
                    .ForeColor = Color.OrangeRed
            g.DrawString("Hello, World!", tf, rc, TextAlignment.Center, ParagraphAlignment.Center, False)

            '' Copy And paste the logo from the GrapeCity home page onto the image, scaled x2:
            Dim fmt = New HtmlToImageFormat(False, False) With
                    .Clip = logoRc,
                    .Scale = 2
            '' Create an instance of GcHtmlBrowser that is used to render HTML:
            Using browser = Util.NewHtmlBrowser()
                Dim s As SizeF
                g.DrawHtml(browser, uri, pixelSize.Width - logoRc.Width * fmt.Scale, 0, fmt, s)
            End Using
        End Using
        Return bmp
    End Function
End Class