1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
| Dim vSignature As Image
Dim vLargeur, vHauteur, vLargeurSignature, vHauteurSignature, vCpt, vPosX, vPosY As Integer
Dim vGraph As Graphics
Dim vImage, vImageThumb As Bitmap
Dim vTransparence As Single = 0.5
Dim vMatrix As Single()() = { _
New Single() {1, 0, 0, 0, 0}, _
New Single() {0, 1, 0, 0, 0}, _
New Single() {0, 0, 1, 0, 0}, _
New Single() {0, 0, 0, vTransparence, 0}, _
New Single() {0, 0, 0, 0, 1}}
Dim vColorMatrix As New ColorMatrix(vMatrix)
Dim vImageAtt As New ImageAttributes
Const cHauteurMax As Integer = 2000
Const cLargeurMax As Integer = 2000
vImageAtt.SetColorMatrix( _
vColorMatrix, _
ColorMatrixFlag.Default, _
ColorAdjustType.Bitmap)
vImage = New Bitmap(Application.StartupPath & "\Original.jpg")
vLargeur = vImage.Width
vHauteur = vImage.Height
If vHauteur > cHauteurMax Then
vLargeur = CInt((cHauteurMax * vLargeur) / vHauteur)
vHauteur = cHauteurMax
End If
If vLargeur > cLargeurMax Then
vHauteur = CInt((cLargeurMax * vHauteur) / vLargeur)
vLargeur = cLargeurMax
End If
'1.1.8 : REDIMENSIONNEMENT DE L'IMAGE
vImageThumb = CType(vImage.GetThumbnailImage(vLargeur, vHauteur, Nothing, Nothing), Bitmap)
'1.1.9 : CREATION D'UN ENCODEUR POUR GERER LA QUALITE
Dim vParamEncodeur As New Imaging.EncoderParameter(Imaging.Encoder.Quality, 90)
Dim vEncodeur As New Imaging.EncoderParameters
vEncodeur.Param(0) = vParamEncodeur
'1.1.10 : CREATION DU CODEC POUR GERER LA FORMAT DE L'IMAGE
Dim vCodec As Imaging.ImageCodecInfo() = Imaging.ImageCodecInfo.GetImageEncoders()
For vCpt = 0 To vCodec.Length - 1
If vCodec(vCpt).MimeType = "image/jpeg" Then
Exit For
End If
Next
'Image temporaire
vGraph = Graphics.FromImage(vImageThumb)
'Qualité de l'image
vGraph.SmoothingMode = Drawing2D.SmoothingMode.HighQuality
'Image Signature
vSignature = Image.FromFile(Application.StartupPath & "\Fond.gif")
vLargeurSignature = vSignature.Width
vHauteurSignature = vSignature.Height
'REDIMENSIONNEMENT DE LA SIGNATURE
If vHauteurSignature > vHauteur Then
vLargeurSignature = CInt((vHauteur * vLargeurSignature) / vHauteurSignature)
vHauteurSignature = vHauteur
End If
If vLargeurSignature > vLargeur Then
vHauteurSignature = CInt((vLargeur * vHauteurSignature) / vLargeurSignature)
vLargeurSignature = vLargeur
End If
'POSITIONNEMENT AU MILIEU
vPosX = CInt((vLargeur - vLargeurSignature) / 2)
vPosY = CInt((vHauteur - vHauteurSignature) / 2)
'DESSINE LE LOGO SUR L'IMAGE
vGraph.DrawImage( _
vSignature, _
New Rectangle(vPosX, vPosY, vLargeurSignature, vHauteurSignature), _
0, _
0, _
vSignature.Width, _
vSignature.Height, _
GraphicsUnit.Pixel, _
vImageAtt)
'1.1.11 : SAUVEGARDE L'IMAGE REDIMENSIONNER
vImageThumb.Save(Application.StartupPath & "\Resultat.jpg", vCodec(vCpt), vEncodeur)
'1.1.12 : DESTRUCTION DE L'IMAGE
vImageThumb.Dispose() |
Partager