晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。   林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。   见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝)   既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。   南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。 sh-3ll

HOME


sh-3ll 1.0
DIR:/opt/alt/libharu/usr/share/libharu/bindings/vb.net/demo/
Upload File :
Current File : //opt/alt/libharu/usr/share/libharu/bindings/vb.net/demo/ImageDemo.vb
Imports HPdf

Module ImageDemo
    Private Sub ShowDescription(ByRef page As HPdfPage, ByVal x As Single, ByVal y As Single, ByVal text As String)
        Dim buf As String

        page.MoveTo(x, y - 10)
        page.LineTo(x, y + 10)
        page.MoveTo(x - 10, y)
        page.LineTo(x + 10, y)
        page.Stroke()

        page.SetFontAndSize(page.GetCurrentFont(), 8)
        page.SetRGBFill(0, 0, 0)

        page.BeginText()

        buf = "(x=" & x & ",y=" & y & ")"
        page.MoveTextPos(x - page.TextWidth(buf) - 5, y - 10)
        page.ShowText(buf)
        page.EndText()

        page.BeginText()
        page.MoveTextPos(x - 20, y - 25)
        page.ShowText(text)
        page.EndText()
    End Sub

    Sub Main()
        Console.WriteLine("libhpdf-" & HPdfDoc.HPdfGetVersion())

        Try
            Dim pdf As HPdfDoc = New HPdfDoc()

            pdf.SetCompressionMode(HPdfDoc.HPDF_COMP_ALL)

            ' create default-font
            Dim font As HPdfFont = pdf.GetFont("Helvetica", Nothing)

            ' add a new page object.
            Dim page As HPdfPage = pdf.AddPage()

            page.SetWidth(550)
            page.SetHeight(500)

            Dim dst As HPdfDestination = page.CreateDestination()
            dst.SetXYZ(0, page.GetHeight(), 1)
            pdf.SetOpenAction(dst)

            page.BeginText()
            page.SetFontAndSize(font, 20)
            page.MoveTextPos(220, page.GetHeight() - 70)
            page.ShowText("ImageDemo")
            page.EndText()

            ' load image file. 
            Dim image As HPdfImage = pdf.LoadPngImageFromFile("demo\\pngsuite\\basn3p02.png")

            ' image1 is masked by image2.
            Dim image1 As HPdfImage = pdf.LoadPngImageFromFile("demo\\pngsuite\\basn3p02.png")

            ' image2 is a mask image. 
            Dim image2 As HPdfImage = pdf.LoadPngImageFromFile("demo\\pngsuite\\basn0g01.png")

            ' image3 is a RGB-color image. we use this image for color-mask
            ' demo.
            '
            Dim image3 As HPdfImage = pdf.LoadPngImageFromFile("demo\\pngsuite\\maskimage.png")

            Dim iw As Single = image.GetWidth()
            Dim ih As Single = image.GetHeight()

            page.SetLineWidth(0.5F)

            Dim x As Single = 100
            Dim y As Single = page.GetHeight() - 150

            ' Draw image to the canvas. (normal-mode with actual size.)
            page.DrawImage(image, x, y, iw, ih)

            ShowDescription(page, x, y, "Actual Size")

            x += 150

            ' Scalling image (X direction)
            page.DrawImage(image, x, y, iw * 1.5F, ih)

            ShowDescription(page, x, y, "Scalling image (X direction)")

            x += 150

            ' Scalling image (Y direction).
            page.DrawImage(image, x, y, iw, ih * 1.5F)
            ShowDescription(page, x, y, "Scalling image (Y direction)")

            x = 100
            y -= 120

            ' Skewing image. 
            Dim angle1 As Single = 10
            Dim angle2 As Single = 20
            Dim rad1 As Single = angle1 / 180 * 3.141592F
            Dim rad2 As Single = angle2 / 180 * 3.141592F

            page.GSave()

            page.Concat(iw, Math.Tan(rad1) * iw, Math.Tan(rad2) * ih, ih, x, y)

            page.ExecuteXObject(image)
            page.GRestore()

            ShowDescription(page, x, y, "Skewing image")

            x += 150

            ' Rotating image 
            Dim angle As Single = 30                        ' rotation of 30 degrees.
            Dim rad As Single = angle / 180 * 3.141592F     ' Calculate the radian value.

            page.GSave()

            page.Concat((iw * Math.Cos(rad)), (iw * Math.Sin(rad)), (ih * -Math.Sin(rad)), (ih * Math.Cos(rad)), x, y)

            page.ExecuteXObject(image)
            page.GRestore()

            ShowDescription(page, x, y, "Rotating image")

            x += 150

            '  draw masked image.

            '  Set image2 to the mask image of image1
            image1.SetMaskImage(image2)

            page.SetRGBFill(0, 0, 0)
            page.BeginText()
            page.MoveTextPos(x - 6, y + 14)
            page.ShowText("MASKMASK")
            page.EndText()

            page.DrawImage(image1, x - 3, y - 3, iw + 6, ih + 6)

            ShowDescription(page, x, y, "masked image")

            x = 100
            y -= 120

            ' color mask.
            page.SetRGBFill(0, 0, 0)
            page.BeginText()
            page.MoveTextPos(x - 6, y + 14)
            page.ShowText("MASKMASK")
            page.EndText()

            image3.SetColorMask(0, 255, 0, 0, 0, 255)
            page.DrawImage(image3, x, y, iw, ih)

            ShowDescription(page, x, y, "Color Mask")

            ' save the document to a file 
            pdf.SaveToFile("ImageDemo.pdf")

        Catch ex As Exception
            Console.Error.WriteLine(ex.Message)
        End Try
    End Sub

End Module