[VB.NET] Copier une partie d'une image BITMAP dans une autre
Bonjour,
Je cherche dans le cadre d'un éditeur de niveau pour un jeu à copier une BITMAP dans une autre BITMAP à une destination précise :
Exemple :
Code:
1 2 3 4 5 6
|
Dim b as new Bitmap("chemin_image")
Dim allImage as new Bitmap(320, 240)
' ajoute l'image b dans allimage à la position (0,10) en pixels
mafonction(allImage, b, 0, 10) |
Voilà reste à coder la fonction "mafonction".
Est ce possible ? Je me suis tourné vers Graphics avec la méthode DrawImage et Clone de la classe Bitmap mais je n'arrive pas :(
Une idée ? Merci :)
COPIER IMAGE DANS AUTRE IMAGE
Bonjour,
cela parait simple mais il surgit un probleme à propos des tailles d'image source et cible.Lorsque la taille cible est plus petite que la taille source ,la taille source sera copie mais rogne,sans compter le probleme de format et de resolution qui doivent etre identique.
voici le bout de code et j'ai fait la copie en conservant les tailles d'origine
des 2 images (jpeg taille identique=800x800 pixel-prise du bureau windows à savoir nenuphar.jpg et hiver.jpg).
en copiant l'image source au centre de la cible ,elle se trouve rogne tot simplement.
Code:
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
|
Public Class Form1
Dim copyBmp As Bitmap
Dim cibleBmp As Bitmap
Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
' charge image cible
cibleBmp = New Bitmap( _
"C:\Documents and Settings\Bureau\WinAppCopyImage\destimg.jpg", _
True)
Dim xCibleSize As Integer = cibleBmp.Width
Dim yCibleSize As Integer = cibleBmp.Height
' affiche cible dans PictureBox1 à la taille d'origine
PictureBox1.ClientSize = New Size(xCibleSize, yCibleSize)
PictureBox1.Image = cibleBmp
' affiche taille en pixel dans Label1.
Label1.Text = "Taille : " & cibleBmp.Width.ToString & cibleBmp.Height.ToString
'cree un objet graphique à partir de l'image cible
Dim g As Graphics = Graphics.FromImage(PictureBox1.Image)
' charge image source à copier.
copyBmp = New Bitmap( _
"C:\Documents and Settings\Bureau\WinAppCopyImage\copyimg.jpg", _
True)
'taille image à copier
Dim xCopySize As Integer = copyBmp.Width
Dim yCopySize As Integer = copyBmp.Height
g.DrawImage(copyBmp, CInt(xCibleSize / 2), CInt(yCibleSize / 2), xCopySize, yCopySize)
Catch ex As ArgumentException
MessageBox.Show("erreur " _
& "verifier chemin fichier image .")
End Try
End Sub
End Class |
bon code................