C # Faire une photo en utilisant différentes images
-
06-09-2019 - |
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!
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;
}