📄 unit1.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(OpenPictureDialog1->Execute())
{
Image1->Picture->LoadFromFile(OpenPictureDialog1->FileName);
Button2->Enabled=true;
Button3->Enabled=true;
}
}
//---------------------------------------------------------------------------
//淡入
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Graphics::TBitmap* myBitmap1;
myBitmap1=new Graphics::TBitmap;
myBitmap1->Width=Image1->Width;
myBitmap1->Height=Image1->Height;
myBitmap1->Assign(Image1->Picture);
Graphics::TBitmap* myBitmap2;
myBitmap2=new Graphics::TBitmap;
myBitmap2->Width=Image1->Width;
myBitmap2->Height=Image1->Height;
myBitmap2->Assign(Image1->Picture);
int width,height;
width=Image1->Width;
height=Image1->Height;
int k,i,j;
RGBColor* ptr1;
RGBColor* ptr2;
for(k=0;k<256;k++)
{
for(i=0;i<height;i++)
{
ptr1=(RGBColor*)myBitmap1->ScanLine[i];
ptr2=(RGBColor*)myBitmap2->ScanLine[i];
for(j=0;j<width;j++)
{
if((ptr2+j)->red>k)
(ptr1+j)->red=k;
if((ptr2+j)->green>k)
(ptr1+j)->green=k;
if((ptr2+j)->blue>k)
(ptr1+j)->blue=k;
}
}
Form1->Canvas->Draw(18,18,myBitmap1);
Application->ProcessMessages();
Sleep(10);
}
delete myBitmap1;
delete myBitmap2;
}
//---------------------------------------------------------------------------
//淡出
void __fastcall TForm1::Button3Click(TObject *Sender)
{
Graphics::TBitmap* myBitmap;
myBitmap=new Graphics::TBitmap;
myBitmap->Width=Image1->Width;
myBitmap->Height=Image1->Height;
myBitmap->Assign(Image1->Picture);
int width,height;
width=Image1->Width;
height=Image1->Height;
int k,i,j;
RGBColor* ptr;
for(k=0;k<256;k++)
{
for(i=0;i<height;i++)
{
ptr=(RGBColor*)myBitmap->ScanLine[i];
for(j=0;j<width;j++)
{
if((ptr+j)->red>0)
(ptr+j)->red-=1;
if((ptr+j)->green>0)
(ptr+j)->green-=1;
if((ptr+j)->blue>0)
(ptr+j)->blue-=1;
}
}
Form1->Canvas->Draw(18,18,myBitmap);
Application->ProcessMessages();
Sleep(10);
}
delete myBitmap;
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -