Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-06-2005
Avatar de gulder
gulder gulder is offline
Miembro
 
Registrado: abr 2005
Ubicación: colombia-sucre
Posts: 384
Poder: 19
gulder Va por buen camino
pasar imagen pixel a pixel

hola delphimaniacos mi pregunta es la siguiente:

necesito pasar una image a otra pero pixel por pixel, primero como hago para saber cuantos pixeles tiene una imagen y con el siguiente codigo probe para pasar de una a otra image pixel por pixel pero no me sirve si estoy equibocado corijanme.

Image1.Canvas.Pixels[i , j]:=Image2.Canvas.Pixels[i , j];

donde iy j son 2 varibles enteras que llevan las coordenadas de el pixel...

gracias gulder..... logula666@hotmail.com
Responder Con Cita
  #2  
Antiguo 21-06-2005
kalisto kalisto is offline
Miembro
 
Registrado: jul 2004
Posts: 62
Poder: 20
kalisto Va por buen camino
copiar imagen

Tienes que meter la instruccion que tu has escrito dentro de un doble bucle que recorra la imagen pixel a pixel:

Código:
 
for j:=0 to image1.Width -1 do
   for i:= 0 to image1.height do
	  image2.Canvas.Pixels[j,i]:=image1.Canvas.Pixels[j,i];
el tamaño de las dos imagenes deben de ser iguales, de todas formas este metodo es demasiado lento para imagenes de gran tamaño, si este estu caso
utiliza el metodo scanline de Tbitmap.
Responder Con Cita
  #3  
Antiguo 22-06-2005
Avatar de gulder
gulder gulder is offline
Miembro
 
Registrado: abr 2005
Ubicación: colombia-sucre
Posts: 384
Poder: 19
gulder Va por buen camino
Cool perfecta la respuesta

esa parte me feltaba la boy a probar y para ver

de todas formas grasias
Responder Con Cita
  #4  
Antiguo 22-06-2005
Avatar de gulder
gulder gulder is offline
Miembro
 
Registrado: abr 2005
Ubicación: colombia-sucre
Posts: 384
Poder: 19
gulder Va por buen camino
Thumbs up

Cita:
Empezado por kalisto
Tienes que meter la instruccion que tu has escrito dentro de un doble bucle que recorra la imagen pixel a pixel:

Código:
 
for j:=0 to image1.Width -1 do
for i:= 0 to image1.height do
	 image2.Canvas.Pixels[j,i]:=image1.Canvas.Pixels[j,i];
el tamaño de las dos imagenes deben de ser iguales, de todas formas este metodo es demasiado lento para imagenes de gran tamaño, si este estu caso
utiliza el metodo scanline de Tbitmap.
kalisto probe este codigo como me dijiste pero me boto el siguiente errror

'Can only modify an image if it contains a bitmap'

no se que pasa podeis ayudarme
Responder Con Cita
  #5  
Antiguo 22-06-2005
kalisto kalisto is offline
Miembro
 
Registrado: jul 2004
Posts: 62
Poder: 20
kalisto Va por buen camino
Lo que pasa que el tipo de imagen que tratas de copiar no es mapa de bits, seguramente sera un jpg.
Responder Con Cita
  #6  
Antiguo 23-06-2005
Avatar de gulder
gulder gulder is offline
Miembro
 
Registrado: abr 2005
Ubicación: colombia-sucre
Posts: 384
Poder: 19
gulder Va por buen camino
Lightbulb

Cita:
Empezado por kalisto
Lo que pasa que el tipo de imagen que tratas de copiar no es mapa de bits, seguramente sera un jpg.
la verdad fue que lo probe con jpg boy a probar con lo que dices grasias
Responder Con Cita
  #7  
Antiguo 23-06-2005
Avatar de gulder
gulder gulder is offline
Miembro
 
Registrado: abr 2005
Ubicación: colombia-sucre
Posts: 384
Poder: 19
gulder Va por buen camino
Thumbs up ahora si....

lo probe con .bmp y si me sirvi pero es bastante lento estube buscando la propiedad scanline de los Tbitmap y no pude encontrarla de todas formas gracias de antemano (gulder vs soltan)

logula666@hotmail.com

Última edición por gulder fecha: 23-06-2005 a las 17:39:39.
Responder Con Cita
  #8  
Antiguo 26-06-2005
<Sergio> <Sergio> is offline
Miembro
 
Registrado: sep 2004
Posts: 72
Poder: 20
<Sergio> Va por buen camino
Pongo un enlace a una página muy buena para aprender a utilizar las funciones del GDI de windows. El tutorial es para C++, pero las funciones se utilizan exactamente igual en Delphi.

Delphi simplifica muchísimo el uso del GDI con objetos como el TCanvas, Tbitmap, etc, pero si quieres optimizar tanto como sea posible (aunque usando el scanline ya haces el 95% de la optimización) tienes que usar el GDI directamente. La idea es trabajar en memoria todo lo que no se pueda hacer con el GDI por que tendrás control total sobre tus bits y sólo para mostrar en pantalla el resultado final usar el GDI.

http://www.winprog.org/tutorial/index.html
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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


La franja horaria es GMT +2. Ahora son las 13:40:30.


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