VB.Net Tutorial/2D Graphics/Jpeg

Материал из VB Эксперт
Перейти к: навигация, поиск

Create Jpeg File

<source lang="vbnet">Imports System.Drawing Imports System.Drawing.Drawing2D Imports System.Drawing.Imaging public class MainClass

  public Shared Sub Main
       Dim bm As New Bitmap(256, 256)
       Dim gr As Graphics = Graphics.FromImage(bm)
       gr.Clear(Color.White)
       gr.DrawEllipse(Pens.Red, 0, 0, bm.Width - 1, bm.Height - 1)
       gr.DrawLine(Pens.Green, 0, 0, bm.Width - 1, bm.Height - 1)
       gr.DrawLine(Pens.Blue, bm.Width - 1, 0, 0, bm.Height - 1)
       " Save the result as a JPEG file.
       
       bm.Save("test.jpg", ImageFormat.Jpeg)
  End Sub

End class</source>

Get Jpeg Information

<source lang="vbnet">" Quote from "Visual Basic 2005 Cookbook Solutions for VB 2005 Programmers "by Tim Patrick (Author), John Craig (Author) "# Publisher: O"Reilly Media, Inc. (September 21, 2006) "# Language: English "# ISBN-10: 0596101775 "# ISBN-13: 978-0596101770

Imports System.Drawing Imports System.Drawing.Drawing2D Imports System.Windows.Forms Public Class GetJpgInformation

   Public Shared Sub Main
       Console.WriteLine(ProcessJPEG.GetJpgInformation("yourfile.jpg"))
   End Sub

End Class

Public Class ProcessJPEG

   Public Shared Function GetJpgInformation(ByVal whichFile As String) As String
       Dim bytesPropertyID As Byte()
       Dim stringPropertyID As String
       Dim loadedImage As System.Drawing.Bitmap
       Dim propertyIDs() As Integer
       Dim result As New System.Text.StringBuilder
       Dim counter As Integer
       Dim scanProperty As Integer
       loadedImage = New System.Drawing.Bitmap(whichFile)
       propertyIDs = loadedImage.PropertyIdList
       For Each scanProperty In propertyIDs
           bytesPropertyID = loadedImage.GetPropertyItem(scanProperty).Value
           stringPropertyID = System.Text.Encoding.ASCII.GetString(bytesPropertyID)
           For counter = 0 To 255
               If counter < 32 Or counter > 127 Then
                   If (stringPropertyID.IndexOf(Chr(counter)) _
                         <> -1) Then
                       stringPropertyID = Replace(stringPropertyID, _
                          Chr(counter), "")
                   End If
               End If
           Next counter
           " ----- Display the property if it"s reasonable.
           If (stringPropertyID.Length > 0) And _
                 (stringPropertyID.Length < 70) Then
               result.Append(scanProperty.ToString)
               result.Append(":   ")
               result.AppendLine(stringPropertyID)
           End If
       Next scanProperty
       " ----- Display the results.
       Return result.ToString
   End Function
   Public Shared Function GetString( _
     ByVal sourceBytes As Byte()) As String
       " ----- Convert a byte array to a string, taking into
       "       account the terminating null character.
       Dim result As String
       result = System.Text.Encoding.ASCII.GetString(sourceBytes)
       If (result.EndsWith(vbNullChar) = True) Then _
          result = result.Substring(0, result.Length - 1)
       Return result
   End Function

End Class</source>

JPEG Compression

<source lang="vbnet">Imports System.Drawing Imports System.Drawing.Drawing2D Imports System.Windows.Forms Imports System.Data Imports System.Drawing.Imaging public class MainClass

  public Shared Sub Main
       Dim curBitmap As Bitmap
       Dim imgCodecInfo As ImageCodecInfo = Nothing
       Dim encoder As Encoder
       Dim encoderParam As EncoderParameter
       Dim encoderParams As New EncoderParameters(1)
       curBitmap = New Bitmap("yourfile.jpg")
       Dim j As Integer
       Dim mimeType As String = "image/jpeg"
       Dim encoders() As ImageCodecInfo
       encoders = ImageCodecInfo.GetImageEncoders()
       j = 0
       While j < encoders.Length
           If encoders(j).MimeType = mimeType Then
               imgCodecInfo = encoders(j)
           End If
       End While "
       encoder = encoder.rupression
       encoderParam = New EncoderParameter(encoder, 1, CInt(EncoderParameterValueType.ValueTypeLong), 0)
       encoderParams.Param(0) = encoderParam "
       curBitmap.Save("Shape0.jpg", imgCodecInfo, encoderParams)
  End Sub

End class</source>