Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-04-2009
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
Problemas con TCanvas.Pixels en la posición [0, 0]

Buenas gente.

He estado buscando sobre este problema en la web, pero parece que soy el único al que le pasa... Así que pregunto por si a ustedes les ha pasado lo mismo.

Hace unos años hice un programita que trabaja con la propiedad Pixels de TCanvas. El otro día lo fui a usar y la cosa no funcionaba. Al ponerme a investigar me di cuenta de que NO ASIGNA los valores en la posición [0, 0]. No sé porqué, pero sencillamente no asigna un valor ahí, en los otros puntos sí que los asigna.

Lo más raro de todo es que si uno usa ScanLines, todo funciona perfectamente, la cosa falla solamente con Pixels.

La cosa pasa con los TBitmap en memoria, es decir, si yo creo una TImage en el formulario y uso Pixels[0, 0], la cosa funciona perfectamente.

Si alguien sabe a qué puede deberse, se los agradecería.

PD: Sé que el programa funciona perfectamente porque lo he usado durante años en el mismo WinXP de siempre. No ha cambiado nada desde entonces...
Responder Con Cita
  #2  
Antiguo 15-04-2009
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
puedes poner el codigo?

PD: yo he tenido algunos problemas asignando al canvas de timage, pero no al de un tbitmap, aunque, para q se entienda, asignando al tbitmap de un timage a veces me da problemas.
Responder Con Cita
  #3  
Antiguo 17-04-2009
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
Hola coso. Gracias por contestar.

En realidad el código es de lo más simplón. Por ejemplo, una de las cosas que probé para ver qué pasaba (recito de memoria, porque estoy en un ciber y no tengo el código):

Código Delphi [-]
 
var Bmp: TBitmap;
     X, Y: Integer;
 
 
Bmp:= TBitmap.Create;
Bmp.LoadFormFile('c:\algo.bmp'); //que mide 18x18
Bmp.Canvas.Brush.Color:= clBlack;
Bmp.Canvas.Rectangle(0, 0, 17, 17);
 
for X:= 0 to 17 do
  for Y:= 0 to 17 do
    Bmp.Canvas.Pixel:= clWhite;

Bmp.SaveToFile('c:\algo.bmp');
Bmp.Free;

Y el pixel (0, 0) es clBlack, en vez de clWhite... El pixel (1, 0) es, increíblemente, clWhite.
Responder Con Cita
  #4  
Antiguo 18-04-2009
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Código Delphi [-]
for X:= 0 to 17 do
  for Y:= 0 to 17 do
    Bmp.Canvas.Pixel[X,Y]:= clWhite;

no se si ya lo has arreglado...

PD: nada, ahora vi q lo escribias de memoria
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
¿Pixels no son pixels en todas las configuraciones? elcigarra Gráficos 0 27-01-2006 14:38:05
Tcanvas mejorado eliash Gráficos 6 10-01-2006 10:47:13
tcanvas alineado a la derecha rebollo75 Impresión 2 30-11-2005 18:45:33
Problemas al guardar la posicion de una ventana en el registro neon Varios 1 21-10-2004 11:01:15
Alternativa a TCanvas.StretchDraw Jose_Pérez Gráficos 2 17-04-2004 16:01:13


La franja horaria es GMT +2. Ahora son las 15:25:51.


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