¿Cómo analizo un registro metarchivo polilínea de una matriz de bytes?
Pregunta
Necesito un poco de ayuda en la definición de los siguientes tipos de GDI de Windows en C #. Tengo los datos en la forma de un byte[]
en C #, y necesito reunir alguna manera o proyectarlo como la siguiente en C #. Supongo que necesito para definir la estructura adecuada? Este es el tipo:
NOMBRE
META_POLYLINE
CERCANA llamada de API
#include <windows.h>
BOOL32 Polyline
(
HDC32 hdc,
const POINT32 *pt,
INT32 count
);
descripción
U16 array no Value --------------------------- -------------- 0 no of points 1 each odd until the end x of the point 2 each even until the end y of the point
Una polilínea es una lista de puntos. A diferencia de un polígono, una polilínea es siempre sin cubrir, y puede ser abierta.
Solución
byte[] buffer;
fixed (byte* b = buffer)
{
ushort* ptr = (ushort*)b;
int count = (int)*ptr;
var points = new Point[count];
for (int i = 0; i < count; i++)
{
int x = (int)*(++ptr);
int y = (int)*(++ptr);
points[i] = new Point(x, y);
}
}
(no probado)
Otros consejos
¿Has mirado en la entrada polilínea en PInvoke.net todavía?
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow