|
Estableciendo el color invisible de una imagen transparente
Copyright © 2000 Ernesto
De Spirito
Imagen transparente
El componente TImage tiene una propiedad Transparent que
al ser establecida en True muestra el mapa de bits de la
propiedad Picture en forma transparente. Para hacer esto,
toma el color del píxel que está más abajo a la izquierda y trata todos
los píxeles de ese color como invisibles (se pueden ver los objetos
detrás de la imagen).
Por ejemplo, esta imagen...
...se vería de esta manera:
Dado que el píxel de la esquina inferior izquierda es verde, todos los
píxeles verdes se hacen invisibles. Pero, ¿cómo haríamos para ver la
imagen de esta manera?
TransparentColor y TransparentMode
Para lograr ese resultado, debemos establecer las
propiedades TransparentColor y TransparentMode del
mapa de bits en tiempo de ejecución, por ejemplo cuando se crea el formulario:
procedure TForm1.FormCreate(Sender: TObject);
begin
with Image1.Picture.Bitmap do begin
TransparentColor := clMaroon;
TransparentMode := tmFixed;
end;
end;
TransparentColor es el color (TColor) que será
considerado invisible. Por ejemplo, podemos usar una constante
(como $00800000, clMaroon o clBtnFace) o
podemos obtener el color de algún píxel del mapa de bits (como Canvas.Pixels[1,1]).
TransparentMode tiene el valor tmAuto como predeterminado,
significando que se toma el color del píxel de la esquina inferior izquierda, y
tendremos que establecerla a tmFixed (el otro valor posible) para indicarle
que use el color guardado en la propiedad TransparentColor como
el color invisible.
|