Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-06-2010
antonio302050 antonio302050 is offline
Miembro
 
Registrado: dic 2009
Posts: 26
Poder: 0
antonio302050 Va por buen camino
AlphaBlend con Imagenes

hola a todos , bueno . Soy nuevo en esto de programar hasta ahora aprendi a programar lo basico en delphiy ahora estoy entrando al mundo de C++ builder ,Yo quisiera q me ayuden a pasar este codigo de Delphi a C++ builder
Es un codigo de tranparencias entre 2 imagenes , donde yo tengo 2 imagenes en formulario q contienen las imagenes q voy ocupar(Image1,Image2),y en el canvas de Image3 pinto la imagen combinada entre Image1 y Image2 , una Semitransparencia entre 2 imagenes,
En el edit1->Text se inserta el porcentaje de transparencia.
mi problema es q nose como usar el procedimiento Alphablend q creo q pertenece a la API de Windows

Código Delphi [-]
unit UFAlphaBlend;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, jpeg;
type
  TForm1 = class(TForm)
    Button1: TButton;
    Image2: TImage;  
    Image1: TImage;
    Image3: TImage;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
  xBlend : BLENDFUNCTION;
  ini,iAncho,iAlto,alpha:Integer;
  aBitmap1,aBitmap2,aBitmap3:TBitmap;
Begin
    iAncho := Image1.Width;
    iAlto := Image1.Height;
    aBitmap1 := TBitmap.Create;
    aBitmap2 := TBitmap.Create;
    aBitmap3 := Tbitmap.Create;
    aBitmap1.Assign(Image1.Picture.Graphic);
    aBitmap2.Assign(Image2.Picture.Graphic);
    aBitmap3.Width := iAncho;
    aBitmap3.Height :=iAlto;
  ini := windows.GetTickCount;
  aBitmap3.Assign(aBitmap1);
  xBlend.BlendOp := windows.AC_SRC_OVER;
  xBlend.BlendFlags := 0;
  Alpha:=StrToInt(Edit1.Text);
  xBlend.SourceConstantAlpha := Alpha;
  xBlend.AlphaFormat := 0;
  Windows.AlphaBlend(aBitmap3.Canvas.Handle,0,0,iAncho,iAlto,aBitmap2.Canvas.Handle,0,0,iAncho,iAlto,x  Blend);
  Image3.Canvas.Draw(0,0,aBitmap3);
  Caption := inttostr(getTickCount - ini)+' milisegundos por frame ' + inttostr(Alpha);
end;
end.

Última edición por Casimiro Notevi fecha: 25-06-2010 a las 10:14:42.
Responder Con Cita
 



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
Problem con AlphaBlend y forms embebidos old_martinez Varios 1 12-03-2009 20:53:05
AlphaBlend aeff API de Windows 10 30-11-2008 14:10:25
Imagenes Nomad Varios 1 04-06-2007 22:39:01
Aplicar AlphaBlend pero a un componente quetzal Varios 1 19-09-2004 09:56:24
Imagenes GIF NuncaMas Gráficos 1 04-12-2003 22:20:38


La franja horaria es GMT +2. Ahora son las 23:31:23.


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