//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "effects.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TMainForm *MainForm;
//---------------------------------------------------------------------------
__fastcall TMainForm::TMainForm(TComponent* Owner)
: TForm(Owner)
{
Image1->Parent->DoubleBuffered=true;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::FormCreate(TObject *Sender)
{
bit1= new Graphics::TBitmap;
bit2= new Graphics::TBitmap;
i=0;
bit1->LoadFromFile("t1.bmp");
bit2->Width = bit1->Width;
bit2->Height = bit1->Height;
width=bit1->Width;
height=bit1->Height;
dh_size=20;//
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::FormDestroy(TObject *Sender)
{
delete bit1;
delete bit2;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::Timer1Timer(TObject *Sender)
{
switch (flag){
case 1: // 从下方推出
if(i<=Image1->Height){
Image1->Canvas->CopyRect(Rect(0,height-i,width,
height),bit1->Canvas,Rect(0,0,width,i));
i+=Step;
}
else
Timer1->Enabled=false;
break;
case 2: // 从上方推出
if(i<=Image1->Height){
Image1->Canvas->CopyRect(Rect(0,0,width,i),
bit1->Canvas,Rect(0,height-i,width,height));
i+=Step;
}
else
Timer1->Enabled=false;
break;
case 3: // 从左边推出
if (i<=width){
Image1->Canvas->CopyRect(Rect(0,0,i,height),
bit1->Canvas,
Rect(width-i,0,width,height));
i+=Step;
}
else
Timer1->Enabled=false;
break;
case 4: // 从右边推出
if (i<=width){
Image1->Canvas->CopyRect(Rect(width-i,0,width,height),
bit1->Canvas,
Rect(0,0,i,height));
i+=Step;
}
else
Timer1->Enabled=false;
break;
case 5: // 水平交错
if (i<=width){
y=i;
while (y >0){
bit2->Canvas->CopyRect(Rect(y-1,0,y,height),
bit1->Canvas,
Rect(width-i+y-1,0,width-i+y,height));
bit2->Canvas->CopyRect(Rect(width-y,0,width-y+1,height),
bit1->Canvas,
Rect(i-y,0,i-y+1,height));
y=y-2;
}
Image1->Canvas->Draw(0,0,bit2);
i+=Step;
}
else
Timer1->Enabled=false;
break;
case 6: // 从中心向四周圆形展开
if((i<=width)&& (i<=height))
{
bit2->Canvas->Brush->Color=clBlack;
bit2->Canvas->FillRect(Rect(0,0,width,height));
bit2->Canvas->Pen->Color=clGreen;
bit2->Canvas->Ellipse((width/2)-i,(height/2)-i,
(width/2)+i,(height/2)+i);
bit2->Canvas->Brush->Color=clWhite;
bit2->Canvas->FloodFill((width/2),(height/2),
clGreen,fsBorder);
bit2->Canvas->CopyMode=cmSrcAnd;
bit2->Canvas->Draw(0,0,bit1);
Image1->Canvas->Draw(0,0,bit2);
}
else
{
bit2->Canvas->Draw(0,0,bit1);
Timer1->Enabled=false;
}
i=i+Step;
break;
case 7: //横向百叶窗
i=i+Step;
if (i<dh)
for (int a=0;a<dh_size;a++)
{
Image1->Canvas->CopyRect(Rect(0,a*dh,width,a*dh+i),
bit1->Canvas,Rect(0,a*dh,width,a*dh+i));
}
else
{
Image1->Canvas->Draw(0,0,bit1);
Timer1->Enabled=false;
}
break;
case 8: //纵向百叶窗
i=i+Step;
if (i<dh)
//20条纵窗帘
for (int a=0;a<dh_size;a++)
{
Image1->Canvas->CopyRect(Rect(a*dh+i-1,0,a*dh+i,height),
bit1->Canvas,Rect(a*dh+i-1,0,a*dh+i,height));
}
else
{
Image1->Canvas->Draw(0,0,bit1);
Timer1->Enabled=false;
}
break;
case 9: // 随机块
if (i<300){
int j,k;
while (b[k=random(15)][j=random(20)]);
Image1->Canvas->CopyRect(Rect(30*j,30*k,30*j+30,30*k+30),
bit1->Canvas,Rect(30*j,30*k,30*j+30,30*k+30));
b[k][j]=true;
i++;
}
else
Timer1->Enabled=false;
break;
case 10: // 从小到大
int dx,dy;
i=i+Step;
if (i<=100)
{
dx=width*i/100/2;
dy=height*i/100/2;
Image1->Canvas->Brush->Color=clBlack;
Image1->Canvas->FillRect(Rect(0,0,width,height));
Image1->Canvas->StretchDraw(Rect((width/2-dx),(height/2-dy),
(width/2+dx),(height/2+dy)),bit1);
}
else
Timer1->Enabled=false;
break;
}
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::FromDownClick(TObject *Sender)
{
Init(1,5,100);
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::FromUpClick(TObject *Sender)
{
Init(2,5,100);
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::FromLeftClick(TObject *Sender)
{
Init(3,5,100);
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::FromRightClick(TObject *Sender)
{
Init(4,5,100);
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::HorizontalMoveClick(TObject *Sender)
{
Init(5,2,30);
}
void __fastcall TMainForm::FromCircleClick(TObject *Sender)
{
Init(6,5,100);
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::HorizontalWindowClick(TObject *Sender)
{
dh=height/dh_size;
Init(7,1,100);
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::verticalWindowClick(TObject *Sender)
{
dh=width/dh_size;
Init(8,1,100);
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::RandomClick(TObject *Sender)
{
Init(9,2,30);
}
//------------------------------------------------
图片特技处理(c++builder)


lghndyz
- 粉丝: 25
- 资源: 88
最新资源
- 【NetTopologySuite】最大内切圆
- stm32 pdo 发送和接收,实现同步接收,主机实现节点是否在线功能
- 基于Qt与MYSQL的图书管理系统.zip
- 数据结构课程设计,地铁公交换乘系统(demo),使用Qt QML.zip
- HCIA笔记1111111111
- stm32 canopen sdo主从机读写大于8字节传输 说明:移植CanFestival协议
- 数据库系统大作业:手机零售系统,技术栈:C++,Qt,SQL Server存储过程、触发器.zip
- 生日快乐祝福网页 HTML
- 最后一个版本,经测试可用 md5: 26569c63bf1ab7165655a58a8b964426
- 用python实现神经网络算法.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



- 1
- 2
前往页