⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.cpp

📁 C++ Builder 6 编程实例教程-北京希望电子出版社出版
💻 CPP
📖 第 1 页 / 共 2 页
字号:
            Bitmap->Canvas->Pixels[i+2][j+2]=RGB(red,green,blue);
            Bitmap->Canvas->Pixels[i+2][j+3]=RGB(red,green,blue);

            Bitmap->Canvas->Pixels[i+3][j]=RGB(red,green,blue);
            Bitmap->Canvas->Pixels[i+3][j+1]=RGB(red,green,blue);
            Bitmap->Canvas->Pixels[i+3][j+2]=RGB(red,green,blue);
            Bitmap->Canvas->Pixels[i+3][j+3]=RGB(red,green,blue);

        }
    }
    Image2->Picture->Bitmap->Assign(Bitmap);
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::D32Click(TObject *Sender)
{
    Image1->Picture->Bitmap->Assign(Image1->Picture->Bitmap);
    int red,green,blue;
    int k1,k2;
    GetRgbp(Sender);
    //取得颜色信息
    for(i=1;i<x-1;i+=8)
    {
        for(j=1;j<y-1;j+=8)
        {
            red=rgbp[i][j].r;
            green=rgbp[i][j].g;
            blue=rgbp[i][j].b;
            //颜色处理
            for(k1=0;k1<8;k1++)
                for(k2=0;k2<8;k2++)
                    Bitmap->Canvas->Pixels[i+k1][j+k2]=RGB(red,green,blue);
        }
    }
    Image2->Picture->Bitmap->Assign(Bitmap);
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::D16Click(TObject *Sender)
{
    Image1->Picture->Bitmap->Assign(Image1->Picture->Bitmap);
    int red,green,blue;
    int k1,k2;
    GetRgbp(Sender);
    //取得颜色信息
    for(i=1;i<x-1;i+=16)
    {
        for(j=1;j<y-1;j+=16)
        {
            red=rgbp[i][j].r;
            green=rgbp[i][j].g;
            blue=rgbp[i][j].b;
            //颜色处理
            for(k1=0;k1<16;k1++)
                for(k2=0;k2<16;k2++)
                    Bitmap->Canvas->Pixels[i+k1][j+k2]=RGB(red,green,blue);
        }
    }
    Image2->Picture->Bitmap->Assign(Bitmap);
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::RedTranClick(TObject *Sender)
{
    Image1->Picture->Bitmap->Assign(Image1->Picture->Bitmap);
    int red,green,blue;
    GetRgbp(Sender);
    //取得颜色信息
    for(i=1;i<x-1;i++)
    {
        for(j=1;j<y-1;j++)
        {
            red=rgbp[i][j].r;
            green=rgbp[i][j].g;
            blue=rgbp[i][j].b;
            //颜色处理
            Bitmap->Canvas->Pixels[i][j]=RGB(red,red,red);
        }
    }
    Image2->Picture->Bitmap->Assign(Bitmap);
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::GreenTranClick(TObject *Sender)
{
    Image1->Picture->Bitmap->Assign(Image1->Picture->Bitmap);
    int red,green,blue;
    GetRgbp(Sender);
    //取得颜色信息
    for(i=1;i<x-1;i++)
    {
        for(j=1;j<y-1;j++)
        {
            red=rgbp[i][j].r;
            green=rgbp[i][j].g;
            blue=rgbp[i][j].b;
            //颜色处理
            Bitmap->Canvas->Pixels[i][j]=RGB(green,green,green);
        }
    }
    Image2->Picture->Bitmap->Assign(Bitmap);
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::BlueTranClick(TObject *Sender)
{
    Image1->Picture->Bitmap->Assign(Image1->Picture->Bitmap);
    int red,green,blue;
    GetRgbp(Sender);
    //取得颜色信息
    for(i=1;i<x-1;i++)
    {
        for(j=1;j<y-1;j++)
        {
            red=rgbp[i][j].r;
            green=rgbp[i][j].g;
            blue=rgbp[i][j].b;
            //颜色处理
            Bitmap->Canvas->Pixels[i][j]=RGB(blue,blue,blue);
        }
    }
    Image2->Picture->Bitmap->Assign(Bitmap);
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::GrayTranClick(TObject *Sender)
{
    Image1->Picture->Bitmap->Assign(Image1->Picture->Bitmap);
    int red,green,blue;
    int GrayColor;
    GetRgbp(Sender);
    //取得颜色信息
    for(i=1;i<x-1;i++)
    {
        for(j=1;j<y-1;j++)
        {
            red=rgbp[i][j].r;
            green=rgbp[i][j].g;
            blue=rgbp[i][j].b;
            GrayColor=(red+green+blue)/3;
            //颜色处理
            Bitmap->Canvas->Pixels[i][j]=RGB(GrayColor,GrayColor,GrayColor);
        }
    }
    Image2->Picture->Bitmap->Assign(Bitmap);
}
//---------------------------------------------------------------------------


void __fastcall TfrmMain::LumIncClick(TObject *Sender)
{
    Image1->Picture->Bitmap->Assign(Image1->Picture->Bitmap);
    int red,green,blue;
    int LumColor;
    GetRgbp(Sender);
    //取得颜色信息
    for(i=1;i<x-1;i++)
    {
        for(j=1;j<y-1;j++)
        {
            red=rgbp[i][j].r;
            green=rgbp[i][j].g;
            blue=rgbp[i][j].b;
            red=red+10;
            //颜色处理
            if(red>255) red=255;
            green=green+10;
            if(green>255) green=255;
            blue=blue+10;
            if(blue>255) blue=255;
            Bitmap->Canvas->Pixels[i][j]=RGB(red,green,blue);
        }
    }
    Image2->Picture->Bitmap->Assign(Bitmap);
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::LumDecClick(TObject *Sender)
{
    Image1->Picture->Bitmap->Assign(Image1->Picture->Bitmap);
    int red,green,blue;
    int LumColor;
    GetRgbp(Sender);
    //取得颜色信息
    for(i=1;i<x-1;i++)
    {
        for(j=1;j<y-1;j++)
        {
            red=rgbp[i][j].r;
            green=rgbp[i][j].g;
            blue=rgbp[i][j].b;
            red=red-10;
            //颜色处理
            if(red<0) red=0;
            green=green-10;
            if(green<0) green=0;
            blue=blue-10;
            if(blue<0) blue=0;
            Bitmap->Canvas->Pixels[i][j]=RGB(red,green,blue);
        }
    }
    Image2->Picture->Bitmap->Assign(Bitmap);
}
//---------------------------------------------------------------------------



void __fastcall TfrmMain::OpenClick(TObject *Sender)
{
    AnsiString filename;
    TColor color;
    if(OpenPictureDialog1->Execute())
    {
        filename=OpenPictureDialog1->FileName;
        Image1->Picture->LoadFromFile(filename);
        Image2->Picture->LoadFromFile(filename);
        x=Image1->Picture->Width;
        y=Image1->Picture->Height;
        for(i=0;i<x-1;i++)
        {
            for(j=0;j<y-1;j++)
            {
                color=Image1->Canvas->Pixels[i][j];
                rgbp[i][j].r=GetRValue(color);
                rgbp[i][j].g=GetGValue(color);
                rgbp[i][j].b=GetBValue(color);
             }
             Bitmap=new Graphics::TBitmap;
             Bitmap->Width=Image1->Picture->Width;
             Bitmap->Height=Image1->Picture->Height;
        }
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::SaveClick(TObject *Sender)
{
    AnsiString filename;
    if(SavePictureDialog1->Execute())
        //显示对话框
        {
            filename=SavePictureDialog1->FileName;
            //获取文件名
            SavePictureDialog1->DefaultExt=".BMP";
            //设置文件缺省扩展名
            Image2->Picture->SaveToFile(filename);
            //存储文件
        }
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::ExitClick(TObject *Sender)
{
    Close();
    //结束程序的运行
}



⌨️ 快捷键说明

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