Afficher des photos dans une ListView

Signaler
Messages postés
16
Date d'inscription
samedi 10 avril 2004
Statut
Membre
Dernière intervention
22 octobre 2004
-
Messages postés
1
Date d'inscription
dimanche 4 décembre 2005
Statut
Membre
Dernière intervention
14 avril 2006
-
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

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
86
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 !!!!
Messages postés
16
Date d'inscription
samedi 10 avril 2004
Statut
Membre
Dernière intervention
22 octobre 2004

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
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
86
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 !!!!
Messages postés
16
Date d'inscription
samedi 10 avril 2004
Statut
Membre
Dernière intervention
22 octobre 2004

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
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
86
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 !!!!
Messages postés
16
Date d'inscription
samedi 10 avril 2004
Statut
Membre
Dernière intervention
22 octobre 2004

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
Messages postés
21
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
11 janvier 2008

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.?
Messages postés
1
Date d'inscription
dimanche 4 décembre 2005
Statut
Membre
Dernière intervention
14 avril 2006

merci