Oct 10, 2007

Set BMP file to Transparent


Set BMP file to Transparent


Imports System
Imports System.Collections
Imports System.ComponentModel
Imports System.Windows.Forms
Imports System.Data
Imports System.Configuration
Imports System.Resources
Imports System.Drawing
Imports System.Drawing.Drawing2D
Imports System.Drawing.Imaging

Public Class MainClass
    Shared Sub  Main()
        Dim  myform As Form = New TransparencyForm()
        Application.Run(myform)
    End Sub
End Class

Public Class TransparencyForm
    Inherits  System.Windows.Forms.Form

#Region " Windows Form Designer generated code "

    Public Sub  New()
        MyBase.New()

        'Th is call is required by the Windows Form Designer.
        InitializeComponent()

        'Ad d any initialization after the InitializeComponent() call
        Me.SetStyle(ControlStyles.ResizeRedraw , True)
        Me.SetStyle(ControlStyles.DoubleBuffer , True)
        Me.SetStyle(ControlStyles.AllPaintingInWmPaint , True)
    End Sub

    'Fo rm overrides dispose to clean up the component list.
    Protected  Overloads Overrides Sub  Dispose(ByVal disposing As  Boolean)
        If  disposing Then
            If  Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub

    'Re quired by the Windows Form Designer
    Private  components As System.ComponentModel.IContainer

    'NO TE: The following procedure  is required by the Windows Form Designer
    'It  can be modified using the Windows Form Designer.  
    'Do  not modify it using the code editor.
    Friend WithEvents splitter2  As System.Windows.Forms.Splitter
    Friend WithEvents splitter1  As System.Windows.Forms.Splitter
    Friend WithEvents groupBox1  As System.Windows.Forms.GroupBox
    Friend WithEvents panel1  As System.Windows.Forms.Panel
    Friend WithEvents groupBox3  As System.Windows.Forms.GroupBox
    Friend WithEvents panel3  As System.Windows.Forms.Panel
    Friend WithEvents groupBox2  As System.Windows.Forms.GroupBox
    Friend WithEvents panel2  As System.Windows.Forms.Panel
    <System.Diagnostics.DebuggerStepThrough ()> Private Sub InitializeComponent()
        Me.splitter2 = New System.Windows.Forms.Splitter ()
        Me.splitter1 = New System.Windows.Forms.Splitter ()
        Me.groupBox1 = New System.Windows.Forms.GroupBox ()
        Me.panel1 = New System.Windows.Forms.Panel ()
        Me.groupBox3 = New System.Windows.Forms.GroupBox ()
        Me.panel3 = New System.Windows.Forms.Panel ()
        Me.groupBox2 = New System.Windows.Forms.GroupBox ()
        Me.panel2 = New System.Windows.Forms.Panel ()
        Me.groupBox1.SuspendLayout()
        Me.groupBox3.SuspendLayout()
        Me.groupBox2.SuspendLayout()
        Me.SuspendLayout()
        '
        'sp litter2
        '
        Me.splitter2.Location = New System.Drawing.Point (232 0)
         Me.splitter2.Name = "splitter2"
        Me.splitter2.Size = New System.Drawing.Size (3 102)
        Me.splitter2.TabIndex =  9
        Me.splitter2.TabStop = False
        '
        'sp litter1
        '
        Me.splitter1.Location = New System.Drawing.Point (229 0)
         Me.splitter1.Name = "splitter1"
        Me.splitter1.Size = New System.Drawing.Size (3 102)
        Me.splitter1.TabIndex =  6
        Me.splitter1.TabStop = False
        '
        'gr oupBox1
        '
        Me.groupBox1.Controls.AddRange (New System.Windows.Forms.Control() {Me.panel1})
        Me.groupBox1.Dock = System.Windows.Forms.DockStyle.Left
        Me.groupBox1.Location = New System.Drawing.Point (117 0)
         Me.groupBox1.Name = "groupBox1"
        Me.groupBox1.Size = New System.Drawing.Size (112 102)
        Me.groupBox1.TabIndex =  5
        Me.groupBox1.TabStop = False
        Me.groupBox1.Text =  "Original Colors"
        '
        'pa nel1
        '
        Me.panel1.BackColor = System.Drawing.Color.White
        Me.panel1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D
        Me.panel1.Dock = System.Windows.Forms.DockStyle.Fill
        Me.panel1.Location = New System.Drawing.Point (3 16)
         Me.panel1.Name = "panel1"
        Me.panel1.Size = New System.Drawing.Size (106 83)
        Me.panel1.TabIndex =  0
        '
        'gr oupBox3
        '
        Me.groupBox3.Controls.AddRange (New System.Windows.Forms.Control() {Me.panel3})
        Me.groupBox3.Dock = System.Windows.Forms.DockStyle.Fill
        Me.groupBox3.Location = New System.Drawing.Point (117 0)
         Me.groupBox3.Name = "groupBox3"
        Me.groupBox3.Size = New System.Drawing.Size (235 102)
        Me.groupBox3.TabIndex =  8
        Me.groupBox3.TabStop = False
        Me.groupBox3.Text =  "Made Transparent"
        '
        'pa nel3
        '
        Me.panel3.BackColor = System.Drawing.Color.White
        Me.panel3.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D
        Me.panel3.Dock = System.Windows.Forms.DockStyle.Fill
        Me.panel3.Location = New System.Drawing.Point (3 16)
         Me.panel3.Name = "panel3"
        Me.panel3.Size = New System.Drawing.Size (229 83)
        Me.panel3.TabIndex =  0
        '
        'gr oupBox2
        '
        Me.groupBox2.Controls.AddRange (New System.Windows.Forms.Control() {Me.panel2})
        Me.groupBox2.Dock = System.Windows.Forms.DockStyle.Left
         Me.groupBox2.Name = "groupBox2"
        Me.groupBox2.Size = New System.Drawing.Size (117 102)
        Me.groupBox2.TabIndex =  7
        Me.groupBox2.TabStop = False
        Me.groupBox2.Text =  "White Background"
        '
        'pa nel2
        '
        Me.panel2.BackColor = System.Drawing.Color.White
        Me.panel2.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D
        Me.panel2.Dock = System.Windows.Forms.DockStyle.Fill
        Me.panel2.Location = New System.Drawing.Point (3 16)
         Me.panel2.Name = "panel2"
        Me.panel2.Size = New System.Drawing.Size (111 83)
        Me.panel2.TabIndex =  0
        '
        'Tr ansparencyForm
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size (5 13)
        Me.ClientSize = New System.Drawing.Size (352 102)
        Me.Controls.AddRange(New System.Windows.Forms.Control () {Me.splitter2, Me.splitter1, Me.groupBox1, Me.groupBox3, Me.groupBox2})
        Me.Name =  "TransparencyForm"
        Me.Text =  "TransparencyForm"
        Me.groupBox1.ResumeLayout(False)
        Me.groupBox3.ResumeLayout(False)
        Me.groupBox2.ResumeLayout(False)
        Me.ResumeLayout(False)

    End Sub

#End  Region


    Dim  backgroundString As String =  "a\n b\n c\n d\n e\n f\n g\n H \n"


    Private Sub  panel1_Paint(ByVal sender As  Object, ByVal e As  PaintEventArgs) Handles panel1.Paint
        Dim As Graphics = e.Graphics
        Dim  bmp As Bitmap = New Bitmap( "figure2.BMP")
        g.DrawString(backgroundString,  Me.Font, Brushes.Black, Me.ClientRectangle.Left, Me.ClientRectangle.Top)
        Dim  rect As Rectangle = New Rectangle( 0 0, bmp.Width, bmp.Height)
        rect.Offset((Me.panel1.ClientRectangle.Width  - rect.Width) / 2, (Me.panel1.ClientRectangle.Height  - rect.Height) / 2)
        g.DrawImage(bmp, rect)
    End Sub

    Private Sub  panel2_Paint(ByVal sender As  Object, ByVal e As  PaintEventArgs) Handles panel2.Paint
        Dim As Graphics = e.Graphics
        Dim  bmp As Bitmap = New Bitmap( "figure2.BMP")
        g.DrawString(backgroundString,  Me.Font, Brushes.Black, Me.ClientRectangle.Left, Me.ClientRectangle.Top)

        Dim  colorMap As ColorMap() = New ColorMap() {New ColorMap()}
        colorMap( 0).OldColor = bmp.GetPixel(0 , bmp.Height - 1 )
        colorMap( 0).NewColor = Color.White
        Dim  attr As ImageAttributes = New ImageAttributes()
        attr.SetRemapTable(colorMap)

        Dim  rect As Rectangle = New Rectangle( 0 0, bmp.Width, bmp.Height)
        rect.Offset((Me.panel1.ClientRectangle.Width  - rect.Width) / 2, (Me.panel1.ClientRectangle.Height  - rect.Height) / 2)
        g.DrawImage(bmp, rect)
    End Sub

    Private Sub  panel3_Paint(ByVal sender As  Object, ByVal e As  PaintEventArgs) Handles panel3.Paint
        Dim As Graphics = e.Graphics
        Dim  bmp As Bitmap = New Bitmap( "figure2.BMP")
        g.DrawString(backgroundString,  Me.Font, Brushes.Black, Me.ClientRectangle.Left, Me.ClientRectangle.Top)

        bmp.MakeTransparent(bmp.GetPixel (0, bmp.Height -  1))
        Dim  rect As Rectangle = New Rectangle( 0 0, bmp.Width, bmp.Height)
        rect.Offset((Me.panel1.ClientRectangle.Width  - rect.Width) / 2, (Me.panel1.ClientRectangle.Height  - rect.Height) / 2)
        g.DrawImage(bmp, rect)
    End Sub

    Private Sub  TransparencyForm_Layout(ByVal sender  As Object, ByVal e As  LayoutEventArgs) Handles MyBase.Layout
        panel1.Refresh()
        panel2.Refresh()
        panel3.Refresh()
    End Sub
End Class

 

No comments:

Post a Comment