سؤال

تخيل أن لدي مصفوفة من الصور 2x2 أو 3x3 وأريد صنع صورة واحدة كبيرة باستخدام هذه الصور 4 أو 9. أريد أن أظهر هذه الصورة على صورة شخصية.

أنا أقدم تطبيق Windows Mobile.

كيف يمكنني أن أفعل هذا؟

تحرير: انتقلت تعليقات على السؤال للحصول على توضيح ..

عادة ما تشمل صورة إلى صورة صورة مثل هذا pictureBox.image = myImage. وبعد أريد بناء myimage باستخدام 4 صور. تخيل أن لدي صورة وقطعها في أربع قطع تربيع. أريد استخدام هذه الصور الأربعة لإعادة صياغة واحدة الأصلية.

شكرا لك!

هل كانت مفيدة؟

المحلول

شيء من هذا القبيل:

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;

نصائح أخرى

إما أن تضع 4 Och 9 OnlineBoxes بجوار بعضها البعض أو استخدم لوحة بدلا من صندوق صور ورسم جميع الصور في حدث Panles Paint باستخدام الرسومات.

هذا يجب أن يعمل، ولكن لم يختبر:

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;
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top