02-06-14, 04:22 PM
استخدم الاكواد التالية و ان شاء الله لن تجد صعوبة في بناء ايقونة
كود :
Imports System.Drawing.Imaging
Imports System.Drawing.Drawing2D
Namespace RiverNile
Public NotInheritable Class BitmapToIcon
Private Sub New()
End Sub
Public Shared Function Format32bppArgbCopy(sourceBitmap As Bitmap) As Bitmap
Dim copyBitmap As New Bitmap(sourceBitmap.Width, sourceBitmap.Height, PixelFormat.Format32bppArgb)
Using graphicsObject As Graphics = Graphics.FromImage(copyBitmap)
graphicsObject.CompositingQuality = CompositingQuality.HighQuality
graphicsObject.InterpolationMode = InterpolationMode.HighQualityBicubic
graphicsObject.PixelOffsetMode = PixelOffsetMode.HighQuality
graphicsObject.SmoothingMode = SmoothingMode.HighQuality
graphicsObject.DrawImage(sourceBitmap, New Rectangle(0, 0, sourceBitmap.Width, sourceBitmap.Height), New Rectangle(0, 0, sourceBitmap.Width, sourceBitmap.Height), GraphicsUnit.Pixel)
End Using
Return copyBitmap
End Function
Public Shared Function CopyToSquareCanvas(sourceBitmap As Bitmap, canvasBackground As Color) As Bitmap
Dim maxSide As Integer = If(sourceBitmap.Width > sourceBitmap.Height, sourceBitmap.Width, sourceBitmap.Height)
Dim bitmapResult As New Bitmap(maxSide, maxSide, PixelFormat.Format32bppArgb)
Using graphicsResult As Graphics = Graphics.FromImage(bitmapResult)
graphicsResult.Clear(canvasBackground)
Dim xOffset As Integer = (sourceBitmap.Width - maxSide) \ 2
Dim yOffset As Integer = (sourceBitmap.Height - maxSide) \ 2
graphicsResult.DrawImage(sourceBitmap, New Point(xOffset, xOffset))
End Using
Return bitmapResult
End Function
Public Shared Function CreateIcon(sourceBitmap As Bitmap, iconSize As IconSizeDimensions) As Icon
Dim squareCanvas As Bitmap = CopyToSquareCanvas(sourceBitmap, Color.Transparent)
squareCanvas = DirectCast(squareCanvas.GetThumbnailImage(CInt(iconSize), CInt(iconSize), Nothing, New IntPtr()), Bitmap)
Dim iconResult As Icon = Icon.FromHandle(squareCanvas.GetHicon())
Return iconResult
End Function
End Class
Public Enum IconSizeDimensions
IconSize16x16Pixels = 16
IconSize24x24Pixels = 24
IconSize32x32Pixels = 32
IconSize48x48Pixels = 48
IconSize64x64Pixels = 64
IconSize96x96Pixels = 96
IconSize128x128Pixels = 128
End Enum
End Namespace
