2009-02-24 7 views
2

Imaginez que j'ai une matrice d'images 2x2 ou 3x3 et je veux faire une grande image en utilisant ces 4 ou 9 images. Je veux montrer cette image sur un PictureBox.C# Faire une image en utilisant diverses images

Je développe une application Windows Mobile.

Comment est-ce que je peux faire ceci?

Edit: commentaires Déplacés à la question des éclaircissements ..

Normalement, vous Asing une image à un picturebox comme celui-ci pictureBox.image = myImage. Je veux construire myImage en utilisant 4 images. Imagine que j'ai une image et découpe-la en quatre pièces au carré. Je veux utiliser ces 4 images pour ré-assembler l'original.

Merci!

+0

Pouvez-vous fournir quelques détails? –

+0

Ouais! Normalement vous asing une image à un pictureBox comme ce pictureBox.image = myImage. Je veux construire myImage en utilisant 4 images. Imagine que j'ai une image et découpe-la en quatre pièces au carré. Je veux utiliser ces 4 images pour ré-assembler l'original. – VansFannel

Répondre

5

Quelque chose comme ceci:

Bitmap bitmap = new Bitmap(totalWidthOfAllImages, totalHeightOfAllImages); 
using(Graphics g = Graphics.FromBitmap(bitmap)) 
{ 
    foreach(Bitmap b in myBitmaps) 
     g.DrawImage(/* do positioning stuff based on image position */) 
} 

pictureBox1.Image = bitmap; 
0

Soit vous placez 4 ou 9 PictureBox l'un à côté de l'autre ou utilisez un Panel à la place d'un PictureBox et dessinez toutes les images dans l'événement Paint Panles en utilisant Graphics.DrawImage.

0

Cela devrait fonctionner, mais non testé:

private Image BuildBitmap(Image[,] parts) { 
    // assumes all images are of equal size, assumes arrays are 0-based 
    int xCount = parts.GetUpperBound(0) + 1; 
    int yCount = parts.GetUpperBound(0) + 1; 

    if (xCount <= 0 || yCount <= 0) 
     return null; // no images to join 

    int width = parts[0,0].Width; 
    int height = parts[0,0].Height; 

    Bitmap newPicture = new Bitmap(width * xCount, height * yCount); 
    using (Graphics g = Graphics.FromImage(newPicture)) { 
     for (int x = 0; x < xCount; x++) 
      for (int y = 0; y < yCount; y++) 
       g.DrawImage(parts[x, y], x * width, y & height); 
    } 

    return newPicture; 
} 
Questions connexes