![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Necesito ayuda para un prgrama que enumere los colores
Hola, llevo cosa de un mes con delphi 6 y sé lo básico, les estaría muy agradecido si me ayudaran a hacer un programa que he pensado diciéndome qué objetos me convendría usar y cómo:
Al programa se le pasaría una imagen muy pixelada, y el programa escribiría un número encima de cada color para identificarlo. Esta sería una de las imágenes que se les podría pasar: http://www.smashboards.com/fzero/emblems/dk_l.jpg esta imagen utiliza pocos colores y se diferencian, pero otras utilizan colores muy parecidos y es casi imposible diferenciarlos. Os estaría muy agradecido si me pudiérais ayudar. Gracias por vuestro tiempo. Un saludo. |
|
#2
|
||||
|
||||
|
No entiendo muy bien lo que necesitas. Entiendo que quieres dibujar un número sobre cada color, pero, eso quiere decir un numero sobre cada cuadradito identificando el color, o acaso quieres identificar las zonas que ocupa cada color y numerar cada una de ellas. Lo primero es sencillo, pero lo veo poco practico, lo segundo requiere de unos algoritmos bastante complejos para analizar la imagen.
Yo vería mas practico un programa, que creara una lista con todos los colores de la imagen, y luego seleccionando el color de la lista permitiera resaltar ese color, combiandolo por otro color mas llamativo. Por ejemplo, en la imagen que pusiste, si queremos resaltar uno de los marrones le podriamos indicar al programa que lo cambiase por azul, diferenciandolo así de los demás colores. No se cual es la finalidad de tu programa, si la explicaras podríamos intentar buscar unas solución mas adecuada. |
|
#3
|
||||
|
||||
|
Usar un número para cada cuadrito también lo veo bastante impráctico. Quizá lo que le convenga es un gotero, como los programas de dibujo, que se pasa el ratón sobre la imagen y nos dice en un hint o un cuadro aparte, el color bajo el cursor.
// Saludos |
|
#4
|
|||
|
|||
|
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. Y por si queréis saber el por qué de la comprobación "SeleccionColor", aquí está el código que la activa y desactiva:
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. |
|
#5
|
||||
|
||||
|
Hola Kandorf, efectivamente para manipular una imagen en condiciones, tienes que convertirla primero en un bitmap.
Pero eso no es problema. Supongo que ahora estas usando algo como esto para cargar la imagen:
Pues cambia esa linea por este otro código:
En cuanto a hacer coincidir las coordenadas del ratón con las coordenadas de la imagen, si la propiedad Streach esta a TRUE. Puede utilizar estas funciones:
No se si me queda lago por ahí ... de todas formas, un consejo, si vas haciendo progresos o tienes nuevas dudas es mejor que escribas otra respuesta nueva en vez de editar tu ultima respuesta. Si no llego a entrar aquí por casualidad no me hubiera enterado de tus 3 ultimas "ediciones" |
|
#6
|
|||
|
|||
|
Genial, muchas gracias por los códigos, el de cargar la imagen me va perfecto, los otros no tanto, pero no pasa nada, me va con asignarle directamente el valor de X e Y, supongo que es porque uso el Canvas del formulario y no el de la imagen.
Ahora el problema que tengo es que no sé guardar la imagen como jpg, no sé cambiarla de formato, he probado mil cosas modificando el código que me pasaste de cargar pero nada, casi ni sabía o que hacía, finalmente he acabado por poner "Imagen.Picture.Graphic.SaveToFile('.\Imagen.jpg');" que lo guarda, pero como bitmap, que ocupa 3 megas y pico... He probado también a modificar la imagen simplemente "Imagen.Canvas.Pixels[7,7]:=clBlue;" en un botón para ver cómo va, y lo hace y lo guarda bien, supongo que es la manera de la que haré los números, aunque si supiérais decirme una manera más profesional de hacerlo poniendo números de verdad sería genial. Por lo pronto me opndré a diseñar los algoritmos que dibujen los números sobre la cuadrícula y el diseño del programa, cuando haya terminado me pondré a ver si consigo que me lo guarde en JPEG, que por lo pronto va bien con el bitmap y no me puedo quejar tanto... Editaba el post para no apropiarme del primer puesto del foto cada vez que me daba por relatar algo xD pero bueno, a partir de ahora crearé una respuesta nueva. Un saludo y muchas gracias por toda la ayuda y por vuestro tiempo. |
![]() |
|
|
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 |
|