Quiero llenar un área específica de la mesa de trabajo usando un lenguaje simple y calcular cuántos píxeles se llenan.
Parámetros:
nXSTart: especifica la coordenada lógica del eje X de la posición a empezar a llenar.
nYStart: Especifica la coordenada lógica del eje Y para comenzar a rellenar.
crColor: Especifica el color del borde o área a rellenar. crColor se interpreta según el valor del parámetro fuFillType.
fuFillType: Especifica el tipo de operación de relleno a realizar. Este parámetro debe tener uno de los siguientes valores, con los siguientes significados:
FLOODFILLBORDER: Indica que el área de relleno es la parte rodeada por el color especificado por el parámetro crColor. Este formulario es el mismo tipo de llenado realizado por la función FloodFill.
FLOODFILLSURFACE: Indica que el área de relleno está definida por el color especificado por crColor. La operación de relleno se expande en todas direcciones hasta encontrar el color. Este modo de operación es adecuado para áreas rellenas con múltiples límites de color.
Valor de retorno: distinto de cero cuando la función tiene éxito; cero cuando la función falla. Para obtener más información sobre errores, llame a la función GetLastError.
Nota: Los siguientes motivos pueden provocar que falle la ejecución de la función:
No se puede completar el llenado.
El píxel especificado tiene el color de borde (es decir, el mismo color) especificado por el parámetro crColor (si se requiere el estilo de operación
).
El píxel especificado no tiene el color especificado por el parámetro crColor (si se solicita el estilo de operación FLOODFILLSURFACE).
El punto está fuera del área de recorte, es decir, no es visible en el dispositivo.
Si el parámetro fuFillType es FLOODFILLBORDER, el sistema considera que el área a rellenar está completamente rodeada por el color especificado por el parámetro crColor. La función comienza a llenarse desde el punto especificado por los parámetros nXStart y nYStart y completa todas las direcciones hasta encontrar el límite.
Si fuFillType es FLOODRILLSURFACE, el sistema supone que el área a rellenar es de un color sólido y la función rellenará el área a partir de los puntos especificados por los parámetros nXStart y nYStart, y rellenará todas las áreas que contengan el color especificado por el parámetro crColor en todas las direcciones.
Solo los dispositivos y entornos de dispositivos de memoria que admiten operaciones de visualización ráster admiten la función ExtFloodFill. Para determinar si un dispositivo admite esta tecnología, utilice la función GetDeviceCaps.
/link?url= f3zWLgOrbiGbclYPn7q4k6yprVW5CKW1OZ2ec21I7kbVxTX2mQABswsozHdlNElWJqXjzE5RPNfKX08273wPGa
El contenido anterior está copiado de la Enciclopedia Baidu
Valor constante
FLOODFILLBORDER = 0
FLOODRILLSURFACE =1
Algoritmo de llenado de semillas
Editar
El algoritmo de llenado de semillas también se denomina algoritmo de llenado de límites. La idea básica es comenzar desde los puntos interiores del área del polígono y dibujar los puntos con el color dado desde el interior hacia el exterior hasta el límite. Si el borde especifica un color, el algoritmo de relleno inicial puede avanzar píxel a píxel hasta encontrar el color del borde.
Los algoritmos de llenado de semillas suelen utilizar técnicas de cuatro dominios continuos y ocho dominios continuos para realizar las operaciones de llenado.
Comienza desde cualquier punto del área y llega a cualquier píxel del área a través de las cuatro direcciones: arriba, abajo, izquierda y derecha. Una región llena de esta manera se llama dominio de cuatro conexiones; este método de llenado se llama algoritmo de cuatro conexiones.
A partir de cualquier punto del área, puedes llegar a cualquier píxel del área a través de ocho direcciones: arriba, abajo, izquierda, derecha, esquina superior izquierda, esquina inferior izquierda, esquina superior derecha y esquina inferior derecha. . El área rellena de esta manera se denomina dominio de ocho conexiones; este método de llenado se denomina algoritmo de conexión de ocho vías.
En términos generales, el algoritmo de conexión de ocho vías puede llenar un área de conexión de cuatro vías, pero el algoritmo de conexión de cuatro vías a veces no puede llenar un área de conexión de ocho vías. Por ejemplo, el algoritmo de llenado de conexiones de ocho vías puede llenar correctamente el interior del área que se muestra en la Figura 2.4a, mientras que el algoritmo de llenado de conexiones de cuatro vías solo puede completar el llenado parcial, como se muestra en la Figura 2.4b.
Figura 2.4 Algoritmo de llenado conectado de cuatro vías
a) Dominio conectado y los puntos en él b) Dominio conectado de cuatro vías de llenado
Conectado de cuatro vías algoritmo de llenado:
a) Utilice el píxel que se insertará en la pila como semilla;
b) Si la pila está vacía, vaya a e; de lo contrario, vaya a c); );
c) Extraiga un píxel y establezca el color de relleno; luego determine si el píxel de cuatro hilos adyacente al píxel es el color del borde o el color de relleno del polígono; empujar el píxel a la pila
d) Ir a b);
e) Fin.
/link?url=jAM4UlhNMYk8__THzHZ2vN_0Fog1LVxC0T3REPhd5QVWhGPEFxHLesL5AMxN6Z4BwfvbxL2bq_KtQHm7CErVWq
Saca el máximo partido a la búsqueda