Afficher des photos dans une ListView

LeGnuff Messages postés 16 Date d'inscription samedi 10 avril 2004 Statut Membre Dernière intervention 22 octobre 2004 - 10 avril 2004 à 16:29
coye2 Messages postés 1 Date d'inscription dimanche 4 décembre 2005 Statut Membre Dernière intervention 14 avril 2006 - 14 avril 2006 à 14:49
Bonjour j'aimerais afficher des photos dans une listview

j'ai réussi à afficher des images carrées mais le pb c'est que j'arrive pas à faire en sorte que les photos ne soient pas déformées pour finir en carré

une solution serait d'afficher effectivement des carrés mais à l'intérieur de ces carrés afficher la photo (à la manière de l'explorateur windows en mode miniature)

par pitié aidez-moi

L'informaticien est à l'informatique ce que le pizzaïolo est à la pizza

8 réponses

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
10 avril 2004 à 16:38
en créant un bitmap carré, puis en dessinant ton image dessus (en la centrant et tout) puis tu charges le bitmap au lieu de l'image directement
ça devrait aller comme ça

Cocoricoooooooo !!!!
0
LeGnuff Messages postés 16 Date d'inscription samedi 10 avril 2004 Statut Membre Dernière intervention 22 octobre 2004
10 avril 2004 à 19:27
merci de ta réponse, mais qu'entends-tu par 'dessiner' par dessus ?

s'agit-il de dessiner la photo par dessus l'item au sein de la listview, dans ce cas comment récupérer les coordonnées de la bitmap carré, sachant quel est considérée comme une simple Item de la listeview ?

ou s'agit-il de fusionner ma photo dans la bitmap en une nouvelle image, puis de charger cette image dans la listview, dans ce cas, c chaud non ?

merci de m'éclairer sur ce pb :)

pseudo-code :

//empty en un rectangle de 96*96
Bitmap conteneurcarre = new Bitmap("empty.bmp");
Image maphoto = Image.FromFile("maphoto.jpg");
/*
??
*/
imageListe.Images.Add(conteneurcarre);
Liste.LargeImageList = imageListe;
Liste.Items.Add("info",0);

L'informaticien est à l'informatique ce que le pizzaïolo est à la pizza
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
10 avril 2004 à 19:48
oui je parlais bien de mettre l'image dans le conteneur carré
avec un CreateGraphics sur le Bitmap tu devrais pouvoir dessiner ton image dessus avec drawimage ou drawimageunscaled de l'objet Graphics
a toi de determiner les coordonnées pour que ce soit bien centré

Cocoricoooooooo !!!!
0
LeGnuff Messages postés 16 Date d'inscription samedi 10 avril 2004 Statut Membre Dernière intervention 22 octobre 2004
10 avril 2004 à 20:35
MERCI BCP mister coq !!!! :):):)

il est cool ce forum je reviendrai :)

Image img = Image.FromFile("photo.jpg");
Bitmap bmp = new Bitmap("empty.bmp");
Graphics g = Graphics.FromImage(bmp);
g.DrawImage(img,0,0);
imageListe.Images.Add(bmp);

L'informaticien est à l'informatique ce que le pizzaïolo est à la pizza
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
10 avril 2004 à 20:53
euh tu n'est pas obligé de charger un bitmap depuis un fichier, tu peux en créer un vide en lui donnant les dimensions par le code directement

Cocoricoooooooo !!!!
0
LeGnuff Messages postés 16 Date d'inscription samedi 10 avril 2004 Statut Membre Dernière intervention 22 octobre 2004
12 avril 2004 à 16:26
Exact, voici à titre informatif le code final :

imageListe = new ImageList();
imageListe.ColorDepth = ColorDepth.Depth24Bit;
imageListe.TransparentColor = Color.Transparent;
imageListe.ImageSize = new Size(96,96);

Image img = Image.FromFile("photo.jpg"); Bitmap bmp new Bitmap(imageListe.ImageSize.Width,imageListe.ImageSize.Height);iint posX 0;
int posY = 0;
int h = bmp.Height;
int w = bmp.Width;
if(img.Height < img.Width)
{
w = h*img.Height/img.Width;
posY = (bmp.Width-w)/2;
}
else
{
h = w*img.Width/img.Height;
posX = (bmp.Height - h)/2;
}

Graphics g = Graphics.FromImage(bmp);
Pen pen = new Pen(Color.LightGray,1);
g.DrawRectangle(pen,0,0,bmp.Width-1,bmp.Height-1);
g.DrawImage(img,new Rectangle(posX,posY,h,w));
imageListe.Images.Add(bmp);

L'informaticien est à l'informatique ce que le pizzaïolo est à la pizza
0
yfbf Messages postés 21 Date d'inscription dimanche 15 février 2004 Statut Membre Dernière intervention 11 janvier 2008
18 juin 2005 à 01:23
Merci pour l'exemple.

Une autre question du même type pour la vue détails :

Comment afficher l'image l'image sur la 1er colonne et ensuite sur les autres, des informations complémentaires.?
0
coye2 Messages postés 1 Date d'inscription dimanche 4 décembre 2005 Statut Membre Dernière intervention 14 avril 2006
14 avril 2006 à 14:49
merci
0
Rejoignez-nous