Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Cómo puedo incluir Imagen de Fondo... (https://www.clubdelphi.com/foros/showthread.php?t=57053)

Gbyte 04-06-2008 14:08:01

Cómo puedo incluir Imagen de Fondo...
 
Hola!
Como puedo incluir una imagen de fondo en mi formulario. y cuales son la extensiones q soporta para la imagen.
GRACIAS.

Caro 04-06-2008 14:36:32

Hola Gbyte, yo utilizaría el componente Image, con la propiedad Align=alClient y la propiedad Strech=True, las extensiones (jpg, bmp...), seguro que hay una forma mejor de hacer esto, esperemos las respuestas de nuestros compañeros.

Saluditos

Gbyte 04-06-2008 15:52:19

Imagen de fondo
 
Gracias Caro.
Funciona bien, pero me podes decir si existe alguna forma de que la imagen q esta en el fondo aparesca con un efecto transparente, algo como efecto agua.
Gracias.

felipe88 04-06-2008 16:51:23

Cita:

Empezado por Gbyte (Mensaje 291227)
Gracias Caro.
Funciona bien, pero me podes decir si existe alguna forma de que la imagen q esta en el fondo aparesca con un efecto transparente, algo como efecto agua.
Gracias.

Hola... creo que eso depende es de la imagen que uses, aunque para poder notar la transparencia debes hacer lo mismo en el form (si quieres que este sea el efecto), de resto se perderia...

PD: Ese truco del form transparente esta por ahi, buscalo :D

Saludos

BlueSteel 04-06-2008 18:01:44

Para dejar la imagen como marca de agua, tambien puedes tratar los niveles alfa de transparencia en algun progama como photoshop o fireworks....

salu2

Caro 04-06-2008 18:18:41

Hola de nuevo, si haras de la forma en que te explique también deberías tomar en cuenta, de colocar a transparente algunos componentes que vayan a estar en tu form como Labels, que la imagen siempre este debajo de todos los componentes (Send To Back) y también lo que explican aqui:

http://www.elrinconcito.com/delphi/trucos/Compo3.htm

Para poner una imagen tranparente debes utilizar TransparentColor y TransparentMode, un ejemplo aqui:

http://www.latiumsoftware.com/es/delphi/00015.php

como te dice el amigo BlueSteel, si quieres dar el efecto de agua, sería mejor que lo hicieras en alguna aplicación que te maneje imagenes como photoshop..... Aquí un ejemplo para transformar a escala de grises una imagen, te puede servir algo de ahí para empezar.

http://www.latiumsoftware.com/es/pascal/0032.php#5

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
  procedure GrayScale(PICT: TPicture);
  const
    MaxPixelCount = 32768;
  type
    pRGBArray = ^TRGBArray;
    TRGBArray = ARRAY[0..MaxPixelCount-1] of TRGBTriple;
  var
    i, j, Colr : Integer;
    sl : pRGBArray;  // Scanline
    bmp : TBitmap;
  begin
    bmp := TBitmap.Create;
    try
      bmp.PixelFormat := pf24bit;
      bmp.Width := PICT.Graphic.Width;
      bmp.Height := PICT.Graphic.Height;
      bmp.Canvas.Draw(0,0,PICT.Graphic);
      if bmp.PixelFormat <> pf24bit then begin
        // ShowMessage('Not a 24Bit color bitmap!');
        Exit;
      end;
      for j:=0 to bmp.Height-1 do begin
        sl := bmp.ScanLine[j];
        for i:=0 to bmp.Width-1 do begin
          Colr:=HiByte(sl[i].rgbtRed * 77 + sl[i].rgbtGreen * 151 +
             sl[i].rgbtBlue * 28);
          sl[i].rgbtRed := Colr;
          sl[i].rgbtGreen := Colr;
          sl[i].rgbtBlue := Colr;
        end;
      end;
      PICT.Assign(bmp);
    finally
      bmp.Free;
    end;
  end;

  begin
    GrayScale(Image1.Picture);
  end;
Saluditos

bbjb 05-09-2008 07:50:49

Cita:

Empezado por Caro
yo utilizaría el componente Image, con la propiedad Align=alClient y la propiedad Strech=True, las extensiones (jpg, bmp...)

He seguido los pasos que aparecen en este post para mostrar una imagen de fondo en el formulario principal y no he tenido ningún problema hasta que ajusto el tamaño de la ventana (en modo ejecución) ya sea para hacerla más grande o pequeña, en ese momento la imagen se distorsiona y aparece de manera difusa. ¿Sabéis como puedo solucionarlo?


La franja horaria es GMT +2. Ahora son las 10:03:39.

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