سؤال

وأنا أعمل على محرر خريطة لعبة XNA أنا تصميم في وقت فراغي. يتم تخزين القطع الفنية المستخدمة في الخريطة على نسيج واحد، ويتم تخزين المستطيلات مع الإحداثيات وعرض الخ.

في تطبيق WinForms عناصر يمكنني إضافة شرائح عن طريق تحديد الشريحة أريد من مربع القائمة، التي يتم ملؤها من مجموعة واسعة من شرائح ممكنة.

والمشكلة هي أنني أود أن يكون قادرا على إظهار معاينة للجزء المحدد، ومنذ يتم تخزينها على نسيج مشترك، وأنا غير قادر على مجرد وضع PictureBox لعرض الصورة.

وهناك على أية حال استخدام المعلومات المستطيل (.X، .y، .width، .height) لعرض فقط جزء من الصورة في picturebox، أو إلى مستوى الذاكرة القسم إلى صورة نقطية وعرض ذلك؟

وشكرا جزيلا

ومايكل ألين

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

المحلول

وربما كنت ترغب في النظر في مكتبة GDI. استخدام صورة أو صورة نقطية الكائن وGraphics.DrawImage () معا سوف تحصل على ما كنت أبحث عنه.

private void DrawImageRectRect(PaintEventArgs e)
{

    // Create image.
    Image newImage = Image.FromFile("SampImag.jpg");

    // Create rectangle for displaying image.
    Rectangle destRect = new Rectangle(100, 100, 450, 150);

    // Create rectangle for source image.
    Rectangle srcRect = new Rectangle(50, 50, 150, 150);
    GraphicsUnit units = GraphicsUnit.Pixel;

    // Draw image to screen.
    e.Graphics.DrawImage(newImage, destRect, srcRect, units);
}

وأنت أيضا قد تكون مهتمة في استخدام XNA داخل WinForm بدلا من استخدام PictureBoxes وGDI. انها ليست 100٪ متوفر حتى الآن، ولكن البرنامج التعليمي على ذلك يمكن العثور هنا .

نصائح أخرى

ويمكنك استخدام Graphics.DrawImage ()، والتي من شأنها أن قبول مستطيل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top