![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
|
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
Última edición por Casimiro Noteví fecha: 25-06-2010 a las 10:14:42. |
|
#2
|
||||
|
||||
|
Un proyecto con tres TImage un Edit y un botón.
Los TImage deben tener una imagen cargada previa. Código:
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
// IMPORTANTE:
// Para poder usar la función AlphaBlend del API tenemos que añadir
// msimg32.lib al proyecto:
// Añadir "$(BCB)\lib\PSDK" al library path en opciones de proyecto.
#pragma link "msimg32.lib"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
BLENDFUNCTION xBlend;
int ini,iAncho,iAlto,Alpha;
Graphics::TBitmap *aBitmap1, *aBitmap2, *aBitmap3;
iAncho = Image1->Width;
iAlto = Image1->Height;
aBitmap1 = new Graphics::TBitmap;
aBitmap2 = new Graphics::TBitmap;
aBitmap3 = new Graphics::TBitmap;
aBitmap1->Assign(Image1->Picture->Graphic);
aBitmap2->Assign(Image2->Picture->Graphic);
aBitmap3->Width = iAncho;
aBitmap3->Height =iAlto;
ini = GetTickCount();
aBitmap3->Assign(aBitmap1);
xBlend.BlendOp = AC_SRC_OVER;
xBlend.BlendFlags = 0;
Alpha = StrToInt(Edit1->Text);
xBlend.SourceConstantAlpha = Alpha;
xBlend.AlphaFormat = 0;
AlphaBlend(aBitmap3->Canvas->Handle,0,0,iAncho,iAlto,aBitmap2->Canvas->Handle,0,0,iAncho,iAlto,xBlend);
Image3->Canvas->Draw(0,0,aBitmap3);
Caption = IntToStr(GetTickCount() - ini)+" milisegundos por frame " + IntToStr(Alpha);
}
//---------------------------------------------------------------------------
|
|
#3
|
|||
|
|||
|
Gracias por la ayuda
Gracias por responder tan rapido scafandra ,
yo no sabia q se tenia que de añadir esa libreria voy a probar tu codigo, despues t aviso si me corre |
|
#4
|
|||
|
|||
|
Scafandra una pregunta
/ Para poder usar la función AlphaBlend del API tenemos que añadir // msimg32.lib al proyecto: Disculpa mi ignorancia Como puedo añadir msimg32.lib a mi proyecto |
|
#5
|
||||
|
||||
|
Cita:
Saludos. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
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 |
|