Pregunta

Estoy trabajando en un Editor de mapas para un juego XNA que estoy diseñando en mi tiempo libre. Las obras de arte utilizadas en el mapa se almacenan en una sola textura y los rectángulos se almacenan con coordenadas y anchos, etc.

En la aplicación winforms puedo agregar segmentos seleccionando el segmento que deseo de un cuadro de lista, que se completa a partir de la matriz de segmentos posibles.

El problema es que me gustaría poder mostrar una vista previa del segmento seleccionado y, dado que está almacenado en una textura común, simplemente no puedo configurar un cuadro de imagen para mostrar la imagen.

¿Hay alguna forma de usar la información del rectángulo (.x, .y, .width, .height) para mostrar solo la sección de la imagen en un cuadro de imagen, o para borrar la sección en un mapa de bits y mostrar eso?

Muchas gracias

Michael Allen

¿Fue útil?

Solución

Probablemente desee buscar en la biblioteca GDI. El uso del objeto Image o Bitmap y Graphics.DrawImage () juntos obtendrá lo que está buscando.

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);
}

También podría estar interesado en usar XNA dentro de su WinForm en lugar de usar PictureBoxes y GDI. Todavía no es 100% compatible, pero se puede encontrar un tutorial sobre eso aquí .

Otros consejos

Puede usar Graphics.DrawImage () y eso aceptará un Rectángulo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top