📄 mainform.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Mainform.h"
#include "math.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn2Click(TObject *Sender)
{//图象从中间往左右分出
BITMAP bm;
Graphics::TBitmap *Bitmap;
//定义一个图象句柄
Graphics::TBitmap *Bitmap1=this->Image1->Picture->Bitmap;
//取得显示窗口的颜色属性
if(GetDeviceCaps(Form1->Canvas->Handle,BITSPIXEL)==8)
{
GetObject(Bitmap1->Handle,sizeof(BITMAP),(LPSTR)&bm);
//如果特效显示的图象颜色属性为256色
if(bm.bmBitsPixel==8)
{
//从特效显示的颜色画板中提取配色方案
SelectPalette(Form1->Canvas->Handle,Bitmap1->Palette,FALSE);
//在显示窗口中设置配色方案
RealizePalette(Form1->Canvas->Handle);
}
Bitmap->HandleType=bmDDB;
}
Image1->Refresh( );
int WideHalf=Bitmap1->Width/2+Bitmap1->Width%2;
for(int i=0;i<=WideHalf; i++)
{
TRect DestRect=Rect(WideHalf-i,0,WideHalf+i,Bitmap1->Height);
TRect SourceRect=Rect(WideHalf-i,0,WideHalf+i,Bitmap1->Height);
Form1->Canvas->CopyRect(DestRect,Bitmap1->Canvas,SourceRect);
Sleep(10);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
if(this->OpenDialog1->Execute())
{
AnsiString StrFile=this->OpenDialog1->FileName;
this->Image1->Picture->LoadFromFile(StrFile);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn3Click(TObject *Sender)
{// 图像从中间往上下分出
BITMAP bm;
Graphics::TBitmap *Bitmap;
Graphics::TBitmap *Bitmap1=this->Image1->Picture->Bitmap;
if(GetDeviceCaps(Form1->Canvas->Handle,BITSPIXEL)==8)
{
GetObject(Bitmap1->Handle,sizeof(BITMAP),(LPSTR)&bm);
if(bm.bmBitsPixel==8)
{
SelectPalette(Form1->Canvas->Handle,Bitmap1->Palette,FALSE);
RealizePalette(Form1->Canvas->Handle);
}
Bitmap->HandleType=bmDDB;
}
Form1->Refresh( );
int HeightHalf=Bitmap1->Height/2+Bitmap1->Height%2;
for(int i=0;i<=HeightHalf;i++)
{
TRect DestRect=Rect(0,0,Bitmap1->Width,i);
TRect SourceRect=Rect(0,HeightHalf-i,Bitmap1->Width,HeightHalf);
TRect Dest2=Rect(0,Bitmap1->Height-i,Bitmap1->Width,Bitmap1->Height);
TRect Source2=Rect(0,HeightHalf,Bitmap1->Width,HeightHalf+i);
Form1->Canvas->CopyRect(DestRect,Bitmap1->Canvas,SourceRect);
Form1->Canvas->CopyRect(Dest2,Bitmap1->Canvas,Source2);
Sleep(10);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn4Click(TObject *Sender)
{//图像从左刷屏显示
BITMAP bm;
Graphics::TBitmap *Bitmap;
Graphics::TBitmap *Bitmap1=this->Image1->Picture->Bitmap;
if(GetDeviceCaps(Form1->Canvas->Handle,BITSPIXEL)==8)
{
GetObject(Bitmap1->Handle,sizeof(BITMAP),(LPSTR)&bm);
if(bm.bmBitsPixel==8)
{
SelectPalette(Form1->Canvas->Handle,Bitmap1->Palette,FALSE);
RealizePalette(Form1->Canvas->Handle);
}
Bitmap->HandleType=bmDDB;
}
Form1->Refresh( );
for(int i=0;i<=Bitmap1->Width;i++)
{
TRect DestRect =Rect(0,0,i,Bitmap1->Height);
TRect SourceRect =Rect(0,0,i,Bitmap1->Height);
Form1->Canvas->CopyRect(DestRect,Bitmap1->Canvas,SourceRect);
Sleep(10);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn5Click(TObject *Sender)
{//图像从上刷屏显示
BITMAP bm;
Graphics::TBitmap *Bitmap;
Graphics::TBitmap *Bitmap1=this->Image1->Picture->Bitmap;
if(GetDeviceCaps(Form1->Canvas->Handle,BITSPIXEL)==8)
{
GetObject(Bitmap1->Handle,sizeof(BITMAP),(LPSTR)&bm);
if(bm.bmBitsPixel==8)
{
SelectPalette(Form1->Canvas->Handle,Bitmap1->Palette,FALSE);
RealizePalette(Form1->Canvas->Handle);
}
Bitmap->HandleType=bmDDB;
}
Form1->Refresh( );
for(int i=0;i<=Bitmap1->Height;i++)
{
TRect DestRect=Rect(0,0,Bitmap1->Width+0,i+0);
TRect SourceRect=Rect(0,0,Bitmap1->Width,i);
Form1->Canvas->CopyRect(DestRect,Bitmap1->Canvas,SourceRect);
Sleep(10);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn6Click(TObject *Sender)
{ //图像从上往下流水
BITMAP bm;
Graphics::TBitmap *Bitmap;
Graphics::TBitmap *Bitmap1=this->Image1->Picture->Bitmap;
if(GetDeviceCaps(Form1->Canvas->Handle,BITSPIXEL)==8)
{
GetObject(Bitmap1->Handle,sizeof(BITMAP),(LPSTR)&bm);
if(bm.bmBitsPixel==8)
{
SelectPalette(Form1->Canvas->Handle,Bitmap1->Palette,FALSE);
RealizePalette(Form1->Canvas->Handle);
}
Bitmap->HandleType=bmDDB;
}
Form1->Refresh( );
for(int i=Bitmap1->Height;i>=0;i--)
{
TRect SourceRect=Rect(0,i,Bitmap1->Width,i+1);
for(int j1=0;j1<=i;j1++)
{
TRect DestRect=Rect(0 ,j1,Bitmap1->Width+0,j1+1);
Form1->Canvas->CopyRect(DestRect,Bitmap1->Canvas,SourceRect);
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn7Click(TObject *Sender)
{//图像从下往上流水
BITMAP bm;
Graphics::TBitmap *Bitmap;
Graphics::TBitmap *Bitmap1=this->Image1->Picture->Bitmap;
if(GetDeviceCaps(Form1->Canvas->Handle,BITSPIXEL)==8)
{
GetObject(Bitmap1->Handle,sizeof(BITMAP),(LPSTR)&bm);
if(bm.bmBitsPixel==8)
{
SelectPalette(Form1->Canvas->Handle,Bitmap1->Palette,FALSE);
RealizePalette(Form1->Canvas->Handle);
}
Bitmap->HandleType=bmDDB;
}
Form1->Refresh( );
for(int i=0;i<=Bitmap1->Height;i++)
{
TRect SourceRect=Rect(0,i,Bitmap1->Width,i+1);
for(int j1=Bitmap1->Height-1;j1>=i;j1--)
{
TRect DestRect=Rect(0,j1,Bitmap1->Width,j1+1);
Form1->Canvas->CopyRect(DestRect,Bitmap1->Canvas,SourceRect);
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn8Click(TObject *Sender)
{//图像圆形展出
BITMAP bm;
Graphics::TBitmap *Bitmap;
Graphics::TBitmap *Bitmap1=this->Image1->Picture->Bitmap;
if(GetDeviceCaps(Form1->Canvas->Handle,BITSPIXEL)==8)
{
GetObject(Bitmap1->Handle,sizeof(BITMAP),(LPSTR)&bm);
if(bm.bmBitsPixel==8)
{
SelectPalette(Form1->Canvas->Handle,Bitmap1->Palette,FALSE);
RealizePalette(Form1->Canvas->Handle);
}
Bitmap->HandleType=bmDDB;
}
Form1->Refresh( );
int j1=sqrt(Bitmap1->Width*Bitmap1->Width+Bitmap1->Height*Bitmap1->Height)/2+4;
for (int i=1;i<j1;i++)
{
HRGN MyRgn=CreateEllipticRgn(Bitmap1->Width/2-i,Bitmap1->Height/2-i,Bitmap1->Width/2+i,Bitmap1->Height/2+i);
SelectObject(Canvas->Handle,MyRgn);
Canvas->Draw(0,0,Bitmap1);
DeleteObject(MyRgn);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn9Click(TObject *Sender)
{//图像左右错移
BITMAP bm;
Graphics::TBitmap *Bitmap;
Graphics::TBitmap *Bitmap1=this->Image1->Picture->Bitmap;
if(GetDeviceCaps(Form1->Canvas->Handle,BITSPIXEL)==8)
{
GetObject(Bitmap1->Handle,sizeof(BITMAP),(LPSTR)&bm);
if(bm.bmBitsPixel==8)
{
SelectPalette(Form1->Canvas->Handle,Bitmap1->Palette,FALSE);
RealizePalette(Form1->Canvas->Handle);
}
Bitmap->HandleType=bmDDB;
}
Form1->Refresh( );
int HeightHalf=Bitmap1->Height/2+Bitmap1->Height%2;
TRect SourceRect=Rect(0,0,Bitmap1->Width,HeightHalf);
TRect Source2=Rect(0,HeightHalf,Bitmap1->Width,Bitmap1->Height);
for(int i=0;i<=Bitmap1->Width;i++)
{
TRect DestRect=Rect(0-Bitmap1->Width+i,0,i,0+HeightHalf);
TRect Dest2=Rect(Bitmap1->Width-i,HeightHalf,Bitmap1->Width+Bitmap1->Width-i,Bitmap1->Height+0);
Form1->Canvas->MoveTo(0-Bitmap1->Width+i-1,0);
Form1->Canvas->LineTo(0-Bitmap1->Width+i-1,HeightHalf);
Form1->Canvas->CopyRect(DestRect,Bitmap1->Canvas,SourceRect);
Form1->Canvas->MoveTo(Bitmap1->Width+Bitmap1->Width-i,0);
Form1->Canvas->LineTo(Bitmap1->Width+Bitmap1->Width-i,Bitmap1->Height);
Form1->Canvas->CopyRect(Dest2,Bitmap1->Canvas,Source2);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn10Click(TObject *Sender)
{//图像上下错移
BITMAP bm;
Graphics::TBitmap *Bitmap;
Graphics::TBitmap *Bitmap1=this->Image1->Picture->Bitmap;
if(GetDeviceCaps(Form1->Canvas->Handle,BITSPIXEL)==8)
{
GetObject(Bitmap1->Handle,sizeof(BITMAP),(LPSTR)&bm);
if(bm.bmBitsPixel==8)
{
SelectPalette(Form1->Canvas->Handle,Bitmap1->Palette,FALSE);
RealizePalette(Form1->Canvas->Handle);
}
Bitmap->HandleType=bmDDB;
}
Form1->Refresh( );
int WideHalf=Bitmap1->Width/2+Bitmap1->Width%2;
TRect SourceRect=Rect(0,0,WideHalf,Bitmap1->Height);
TRect Source2=Rect(WideHalf,0,Bitmap1->Width,Bitmap1->Height);
for(int i=0;i<=Bitmap1->Height;i++)
{
TRect DestRect=Rect(0,0-Bitmap1->Height+i,WideHalf,0+i);
TRect Dest2=Rect(WideHalf,Bitmap1->Height-i,Bitmap1->Width,Bitmap1->Height);
Form1->Canvas->LineTo(WideHalf,0-Bitmap1->Height+i-1);
Form1->Canvas->CopyRect(DestRect,Bitmap1->Canvas,SourceRect);
Form1->Canvas->MoveTo(WideHalf,Bitmap1->Height+Bitmap1->Height-i);
Form1->Canvas->LineTo(Bitmap1->Width,Bitmap1->Height+Bitmap1->Height-i);
Form1->Canvas->CopyRect(Dest2,Bitmap1->Canvas,Source2);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn11Click(TObject *Sender)
{//图像从右移入
BITMAP bm;
Graphics::TBitmap *Bitmap;
Graphics::TBitmap *Bitmap1=this->Image1->Picture->Bitmap;
if(GetDeviceCaps(Form1->Canvas->Handle,BITSPIXEL)==8)
{
GetObject(Bitmap1->Handle,sizeof(BITMAP),(LPSTR)&bm);
if(bm.bmBitsPixel==8)
{
SelectPalette(Form1->Canvas->Handle,Bitmap1->Palette,FALSE);
RealizePalette(Form1->Canvas->Handle);
}
Bitmap->HandleType=bmDDB;
}
Form1->Refresh( );
for(int i=0;i<=Bitmap1->Width;i++)
{
TRect DestRect=Rect(Bitmap1->Width-i,0,Bitmap1->Width,Bitmap1->Height);
TRect SourceRect=Rect(0,0,i,Bitmap1->Height);
Form1->Canvas->CopyRect(DestRect,Bitmap1->Canvas,SourceRect);
}
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -