Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-08-2010
Alejo15x Alejo15x is offline
Miembro
 
Registrado: ene 2010
Posts: 55
Poder: 15
Alejo15x Va por buen camino
RGB a entero de 3 digitos y exportar Bitmap?

Hola!

Tal vez ya me puse fastidioso..
D:

Veamos, tengo una imagèn asì;



Digamos que en un "TBitmap" ò "TImage".
Ahora, tengo 4 textboxes...

El primero, me cambia el color del area "verde".
El segundo, me cambia el color del area "verde oscuro".
El tercero, me cambia el color del area "rojo oscuro".
El cuarto, y ultimo. Me cambia el color del area "amarillo".

Ahora, se supone que en los textboxes va un color "RPG" de 3 dijitos...Yo mismo podrìa elaborarlos, pero el valor "0", en el pre-prosesador es blanco, y 137 es "negro". (El pre-prosesador es el juego...)

Ahora, bien quisiera saber como cambiar el color de la imagèn D:

Un saludo, espero haverme explicado, cualquier respuesta sera bien apreciada.
La enumeraciòn de cada color va del siguiente modo:

Responder Con Cita
  #2  
Antiguo 24-08-2010
LoPiTaL LoPiTaL is offline
Miembro
 
Registrado: abr 2009
Posts: 168
Poder: 16
LoPiTaL Va por buen camino
Hola. No sé si te he entendido muy bien.... lo que quieres hacer es coger el color de una determinada zona de tu imagen original, y reemplazarlo por un color de la tabla que nos das en función del número que el usuario haya introducido en el textbox, ¿no?

Me imagino que donde estás atascado es en saber qué píxeles pertenecen a cada zona para saber de qué color pintarlos. Para ello, lo más fácil es que te crees varias imágenes más (una por cada zona que tengas) en blanco y negro. Estas imágenes se llaman máscaras, y se utilizan para discriminar zonas. Una vez las tengas, simplemente deberás comprobar si el pixel de la máscara es blanco o no. Si es blanco, entonces pintas el mismo pixel con el color que tú quieras en la imagen original.
Si no quieres tener tantas imágenes, podrías tener una sola imagen con distintos colores para las distintas zonas, la cual no vas a modificar nunca, además de la imagen a pintar, que será la que le enseñes al usuario. Esta vez, compruebas en la imagen de referencia de qué color es el pixel a pintar, entonces sabes a qué zona pertenece, y ahoar ya puedes pintar el pixel en la otra imagen en función de eso y del color que haya elegido el usuario.

Espero haberte ayudado.
Un saludo,
LoPiTaL
Responder Con Cita
  #3  
Antiguo 24-08-2010
Avatar de Lord Delfos
Lord Delfos Lord Delfos is offline
Miembro
 
Registrado: ene 2008
Ubicación: Tandil, Argentina
Posts: 558
Poder: 17
Lord Delfos Va por buen camino
A ver, a ver si entiendo lo que querés hacer...

1_ Si entiendo bien. Vos tenés una imagen como la que mostraste.
2_ El usuario eleige un color de 0 a 132 en un textbox específico.
3_ Dado el índice del color (0..132) y el textbox en el que se modificó, yo cambio todos los pixeles de un tenerminado color (según el textbox) por otro color (según el índice dado).

¿Tamos?

Entonces yo lo que haría sería tener dos imágenes. En principio iguales. Una se la muestro al usuario y la otra no.

También tendría un arreglín con los colores.

Código Delphi [-]
const Colores: array[1..132] of TColor = (clBlue, clWhite...., $056677F4,);


Y después reemplazaría los pixeles de mi imagen visible, siguiendo como guía la imagen que no muestro (y que nunca modifico).

En principio podrías usar la propiedad Pixels. No es lo más aconsejable por la velocidad, pero para empezar podrías probar con eso que es más fácil.

Código Delphi [-]
var X; Y: Integer
begin
  for X:= 1 to 32 do
    for Y:= 1 to 32 do
      if ImagenOculta.Bitmap.Canvas.Pixels[X,Y]  = #004566AF then //El color según textbox elegido
        ImagenVisible.Bitmap.Canvas.Pixels[X, Y]:= Colores[IndiceIndicadoPorUsuario];
end;

Nota: Estoy tocando de oído porque no tengo Delphi acá, así que esto puede andar perfecto o ni siquiera compilar.

¿Se entiende más o menos lo que digo?
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
comparar nros de 15 digitos fedelphi Varios 2 12-05-2007 18:35:53
Crear dll para un programa del que no tengo entero el código fuente entero seduerey Varios 1 02-05-2007 13:58:08
Ingresar un núm de 10 digitos... coronado Varios 1 12-10-2006 13:49:18
Cantidad de digitos de un entero kikodelphi OOP 2 06-12-2005 18:51:28
De entero a hexa, y hexa a entero (o string) emeceuy Varios 5 02-06-2004 18:23:13


La franja horaria es GMT +2. Ahora son las 00:18:49.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi