Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

 
 
Herramientas Buscar en Tema Desplegado
  #4  
Antiguo 19-05-2007
Kandorf Kandorf is offline
Miembro
 
Registrado: may 2007
Posts: 38
Poder: 0
Kandorf Va por buen camino
Sí, seoane, es lo primero que has dicho, escribir en cada cuadrito un número para identificarlo, el cometido del programa es poder diferenciar cada color de otro, para posteriormente volcarme la imagen al móvil y copiarla(a mano) a un juego(la consola me pilla bastante lejos del ordenador) que tiene un editor de imágenes, cada cuadradito de un color sería un píxel en la imagen del juego. El problema que se me planteaba era que si me pongo a hacerlo sin nada que identifique a cada píxel del dibujo, no sé distinguir entre un color y otro muy parecido.
Muchas gracias por vuestra ayuda y siento molestaros por un antojo tal.

Edición 1:
Para roman: Vale, acabo de pillar lo del gotero, pues sí, sería muy buena idea, para coger el color y poder asignarle el número que sea. Lo que veo un problema es que al ser una imagen jpg y no un mapa de bits, cada cuadrito no será monocromo, sino que habrá muchos subtonos y puede que no coja bien el color...
Muchas gracias a los dos.

Edición 2:
He estado intentándolo desde entonces y he progresado algo, he conseguido que me cargue la imagen en un objeto Image (No sé si es el más apropiado) utilizando un botón (antes no me dejaba, me decía que no soportaba la extensión sin motivo aparente).
Lo otro que he hecho ha sido intentar crear un cuentagotas (gotero) que sabría hacerlo bien si no tuviera que utilizar la propiedad Stretch, pero la imagen es demasiado grande, además, sólo funciona con las imágenes Bitmap (*.bmp), ya que no me deja utilizar la propiedad Pixels en una imagen JPEG. Os paso el código del gotero que he creado para que lo veáis.
Código Delphi [-]
procedure TForm1.ImagenMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if SeleccionColor=True then
  begin
    PosX:=X div (Imagen.Height div Imagen.Picture.Height);    //Esta operación tampoco me deja hacerla cuando uso un JPEG
    PosY:=Y div (Imagen.Width div Imagen.Picture.Width);      //Me da el error: Division by Zero
    Label1.Caption:='X='+IntToStr(PosX)+' Y='+IntToStr(PosY);   //Esta etiqueta la tengo puesta sólo para saber los valores
  end;
end;

procedure TForm1.ImagenClick(Sender: TObject);
begin
  if SeleccionColor=True then
    EdtColor.Color:=Imagen.Canvas.Pixels[PosX,PosY];  //El color lo pongo en un edit con Enabled:=False, no sé hacerlo mejor :$
end;                                                  //que tampoco me deja hacerlo, por la propiedad Pixels de un JPEG
Y por si queréis saber el por qué de la comprobación "SeleccionColor", aquí está el código que la activa y desactiva:
Código Delphi [-]
procedure TForm1.BtnSeleccionarColorClick(Sender: TObject);
begin
  SeleccionColor:=True;
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if SeleccionColor=True then
    if Key=Vk_Escape then
      SeleccionColor:=False;
end;

Edición 3:
Sigo progresando, finalmente he conseguido hacer el cuentagotas, tan simple como quitar el "Imagen" de delante del "Imagen.Canvas", no hace falta ni la fórmula esa que me inventé para calcular la proporción, que me daba error de división por cero porque la imagen JPEG era más grande que el tamaño del objeto Image y la división daba 0 (al ser división entera) y por eso protestaba... Estoy aprendiendo mucho.
Bueno, ahora que tengo el gotero hecho y una versión beta de un desplegable que me va numerando los colores que voy eligiendo, me queda poner el número de cada color en la imagen, que si no fuera porque el JPEG no me permite usar la propiedad Pixels, creo que sabría hacerlo, puede que acabe cambiando las imágenes de formato. Cuando termine el programa lo pondré a disposición de todo el mundo, aunque no creo que lo queráis para nada xD.
Un saludo.

Última edición por Kandorf fecha: 20-05-2007 a las 02:37:26.
Responder Con Cita
 



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
necesito ayuda para terminar un detalle vixente Conexión con bases de datos 0 01-06-2006 11:36:50
Necesito ayuda para imprimir por COM1... AFilth Impresión 3 11-02-2006 12:22:49
Necesito ayuda para manerjar archivos meosre Varios 2 08-09-2005 18:37:34
necesito ayuda para hacer un sistema para un billar rober Varios 14 29-07-2004 01:08:02
Necesito ayuda para aprobar... OnClick Varios 10 27-05-2003 02:12:05


La franja horaria es GMT +2. Ahora son las 09:21:42.


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