Sauvegarde en memoire d'un Bitmap [Résolu]

moimadmax 18 Messages postés mardi 2 septembre 2003Date d'inscription 27 novembre 2008 Dernière intervention - 16 oct. 2008 à 21:34 - Dernière réponse : moimadmax 18 Messages postés mardi 2 septembre 2003Date d'inscription 27 novembre 2008 Dernière intervention
- 27 nov. 2008 à 19:34
Je travail sur un projet qui fait une trace (en marquant un point toute les 15s) sur un plan en utilisant la position GPS. Je voudrai aussi pouvoir visualiser la position actuelle sur le plan par un point plus gros. pas de problème avec la partie de dessin.


J'ai ce Code qui permet de sauvegarder l'image, de placer le point et de restaurer l'image sauvegardé sans le point afin d'etre utilisé plus tard pour continuer la trace.


  tempPos = (Bitmap)bitmap.Clone(); // Sauvegarde l'image en memoire

  traiter(position + " : POS : 200"); // place le point
  pb.Refresh(); // rafraichi la picturebox afin qu'elle affiche
  bitmap = (Bitmap)tempPos.Clone();

Et c'est là que le probleme commence. J'avais essayé sans le Clone mais vu que tempPos fait une reference a bitmap, ca ne fonctionne pas. J'ai essayé avec Clone pour tenter de faire un passage par Valeur mais ca na semble pas concluant car ca fait pareil qu'avant :(

D'avance Merci pour votre aide.

Matthieu
Afficher la suite 

3 réponses

Répondre au sujet
ctx_man 285 Messages postés mardi 28 décembre 2004Date d'inscription 20 janvier 2013 Dernière intervention - 27 nov. 2008 à 17:47
+3
Utile
Salut,

plutot que de clonner ton objet, je te propose d'en faire un autre, tout nouveau.

Essaye quelques chose comme ca :

Bitmap map; // Ta carte sans points
Bitmap mapTrace = new Bitmap(map); // Construit un autre bitmap dupliquant le premier.

Je n'ai pas testé, donc si ca pose toujours probleme, voilà une autre solution :

Bitmap map; // Ce Bitmap contient ta carte, sans points, Tu la charge comme tu veux

Bitmap mapTrace = CopyBitmap(map); // Ce bitmap en est un tout nouveau, mais identique au map au point de vue graphique


public Bitmap CopyBitmap(Bitmap src)

{

&nbps;&nbps;&nbps;&nbps;Bitmap dst = new Bitmap(src.Width, src.Height); // Construit une image de la même taille

&nbps;&nbps;&nbps;&nbps;Graphics g = Graphics.FromImage(dst); // Sur cette nouvelle image on obtient un objet de dessin

&nbps;&nbps;&nbps;&nbps;g.DrawImage(src, 0, 0, src.Width, src.Height); // Sur cette nouvelle image on dessine l'image source

&nbps;&nbps;&nbps;&nbps;g.Dispose(); g = null; // On libère l'objet de dessin
&nbps;&nbps;&nbps;&nbps;return dst; // On retourne le nouveau Bitmap

}

Le travail c'est la santé, ne rien faire c'est la préserver !!!
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de ctx_man
ctx_man 285 Messages postés mardi 28 décembre 2004Date d'inscription 20 janvier 2013 Dernière intervention - 27 nov. 2008 à 17:49
0
Utile
Damned, foiré mes espacements (les &nbps; sont a ignoré, j'ai inversé deux lettre dans ce code, normlament ca devrait être des espaces ^^')

Le travail c'est la santé, ne rien faire c'est la préserver !!!
Commenter la réponse de ctx_man
moimadmax 18 Messages postés mardi 2 septembre 2003Date d'inscription 27 novembre 2008 Dernière intervention - 27 nov. 2008 à 19:34
0
Utile
Je te remercie, je vais tenter ca ...

>Madmax, Parce que le Java c'est bien :p
Commenter la réponse de moimadmax

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.