Question

Imaginez que j'ai une matrice d'images 2x2 ou 3x3 et je veux faire une grande image à l'aide de ces 4 ou 9 images. Je veux montrer cette image sur un picturebox.

Je développe une application Windows Mobile.

Comment puis-je faire?

Modifier: commentaires Déplacé à la question des éclaircissements ..

Normalement, vous Asing une image à un picturebox comme celui-ci pictureBox.image = myImage. Je veux construire myImage avec 4 images. Imaginez que j'ai une image et le couper en quatre morceaux carrés. Je veux utiliser ces 4 images pour re-assamble l'original.

Merci!

Était-ce utile?

La solution

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;

Autres conseils

soit placer 4 och 9 PictureBoxes côté de l'autre ou d'utiliser un panneau au lieu d'un PictureBox et d'en tirer toutes les images dans le cas de la peinture en utilisant Panles Graphics.DrawImage.

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;
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top