mainform.cpp

来自「C++ BUILDER精彩编程实例集锦(源码)2 第三部分 文件操作 第四部」· C++ 代码 · 共 80 行

CPP
80
字号
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Mainform.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
   if(this->OpenPictureDialog1->Execute())
   {
      AnsiString StrFileName=this->OpenPictureDialog1->FileName;
      this->Image1->Picture->LoadFromFile(StrFileName);
   }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::BitBtn3Click(TObject *Sender)
{
   this->Close();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::BitBtn2Click(TObject *Sender)
{//平均值法将彩色图像转换为黑白图像
   for(int i=0;i<this->Image1->Width;i++)
     for(int j=0;j<this->Image1->Height;j++)
     {
        int Pixel=this->Image1->Picture->Bitmap->Canvas->Pixels[i][j];
        int ColorRed=GetRValue(Pixel);
        int ColorGreen=GetGValue(Pixel);
        int ColorBlue=GetBValue(Pixel);
        int NewPixel=((ColorRed+ColorGreen+ColorBlue)/3);
        this->Image1->Picture->Bitmap->Canvas->Pixels[i][j]=RGB(NewPixel,NewPixel,NewPixel);
     }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::BitBtn4Click(TObject *Sender)
{//最大值法将彩色图像转换为黑白图像
   for(int i=0;i<this->Image1->Width;i++)
     for(int j=0;j<this->Image1->Height;j++)
     {
        int Pixel=this->Image1->Picture->Bitmap->Canvas->Pixels[i][j];
        int ColorRed=GetRValue(Pixel);
        int ColorGreen=GetGValue(Pixel);
        int ColorBlue=GetBValue(Pixel);
        int NewPixel=ColorRed>ColorGreen?ColorRed:ColorGreen;
        NewPixel=NewPixel>ColorBlue?NewPixel:ColorBlue;
        this->Image1->Picture->Bitmap->Canvas->Pixels[i][j]=RGB(NewPixel,NewPixel,NewPixel);
     }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::BitBtn5Click(TObject *Sender)
{//加权平均值法将彩色图像转换为黑白图像
   for(int i=0;i<this->Image1->Width;i++)
     for(int j=0;j<this->Image1->Height;j++)
     {
        int Pixel=this->Image1->Picture->Bitmap->Canvas->Pixels[i][j];
        int ColorRed=GetRValue(Pixel);
        int ColorGreen=GetGValue(Pixel);
        int ColorBlue=GetBValue(Pixel);
        int NewPixel=ColorRed*0.6+ColorGreen*0.3+ColorBlue*0.1;
        this->Image1->Picture->Bitmap->Canvas->Pixels[i][j]=RGB(NewPixel,NewPixel,NewPixel);
     }
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?