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

📄 unit1.~cpp

📁 毕业设计图像处理软件及源代码对毕业生会有所帮助
💻 ~CPP
📖 第 1 页 / 共 3 页
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#include <jpeg.hpp>
#pragma hdrstop

#include "Unit1.h"
#include "Unit2.h"
#include "Unit3.h"
#include "Unit4.h"
#include "Unit5.h"
#include "Unit6.h"
#include "Unit7.h"
#include "Unit8.h"
#include "Unit9.h"
#include "Unit10.h"
#include "Unit11.h"
#include "Unit12.h"
#include "Unit14.h"
#include "Unit15.h"
#include "Unit16.h"
#include "Unit19.h"
#include "backwindow.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
TForm *fActForm2;
//---------------------------------------------------------------------------
//变量
TJPEGImage *jpeg;
int iForm2PicNum=10;           //图像框的缓冲数量  //注意必须要和Form2中的iPicNum保持一致

Graphics::TBitmap* bImagetemp; //缓冲图像
AnsiString sFileName;          //新建画板的变量
TForm2* fForm2Array[50];      //子窗口
bool bForm2Null[50];          //标志窗口是否可用
int iFormNum=50;             //子窗数
int iActForm2;               //当前活动子窗口
int iForm2Sum=0;             //窗口总数
int iGraphStyle=0;           //图形的样式
int iGraphThick=1;           //图形的粗细
TColor tGraphColor;          //图形颜色
TColor tBrushColor;         //填充颜色
TColor tGroundColor;       //背景色
bool bIsTransparence=true;       //是否透明
int iNewWidth,iNewHeight;       //新建画布宽和高
TRect rnew;
extern int iPointRange;         //点运算范围
int iMASAIKE;         //马赛克颗粒大小
int iExposureColor;   //曝光度

TPoint pProcessBegin,pProcessEnd;  //处理图像的开始点和终止点的坐标

float fWr,fWg,fWb;           //加权平均图像处理参数
int iReturnValue;            //取值窗口返回值

int ilineB;                //灰度变换参数
float flineA;              //灰度变换参数

int iTemplate[4][4];       //平滑操作参数 模板
int iTNum=3;               //平滑操作参数 模板维度

int iThre=10;                //锐化参数  阈值
long lCopyStyle;      //合并参数

int iCopyDestop;          //截屏时的变量 1最小化全屏,2最小化任意取,11全屏立即拷贝,12立即任意取
bool bFullCopy;         //截屏模式
int iMyCursorOrder[10]={10,11,12,13,14,15,16,17,18,19}; //光标
AnsiString helpadd;

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
        jpeg = new TJPEGImage();
        lCopyStyle=SRCCOPY;
        iMASAIKE=3;
        tBrushColor=TColor(RGB(255,255,255));
        helpadd=GetCurrentDir()+"\\help.chm";
        Screen->Cursors[10]=LoadCursor(HInstance,"AC_PEN");
        Screen->Cursors[11]=LoadCursor(HInstance,"AC_SUCK");
        Screen->Cursors[12]=LoadCursor(HInstance,"AC_UPZOOM");
        Screen->Cursors[13]=LoadCursor(HInstance,"AC_DOWNZOOM");
        Screen->Cursors[14]=LoadCursor(HInstance,"AC_UNZOOM");
        Screen->Cursors[15]=LoadCursor(HInstance,"AC_REC");
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
        delete bImagetemp;
        delete jpeg;
}
//---------------------------------------------------------------------------
//创建打开画板---------------------------------------------------------------
void TForm1::f_CreatePalette()
{
        int i,j;
        for(i=0;i<iFormNum;i++)
        {
                if(bForm2Null[i])
                {
                        fForm2Array[i]=new TForm2(this);
                        bForm2Null[i]=false;
                        fForm2Array[i]->iOrder=i;    //设置此画板在画板缓冲区中的位置
                        iActForm2=i;                 //设置当前激活的画板序号
                        iForm2Sum++;                        //画板数目加1
                        fForm2Array[i]->Caption=sFileName;   //设置画板标题
                        fForm2Array[i]->lPicWidth=bImagetemp->Width;   //设置画板的高和宽
                        fForm2Array[i]->lPicHeight=bImagetemp->Height;

                        fForm2Array[i]->Image1->Picture->Bitmap->Assign(bImagetemp);
                        for(j=0;j<fForm2Array[i]->iPicNum;j++)
                                fForm2Array[i]->bPicArray[j]->Assign(bImagetemp);
                        //设置画板版面大小
                        fForm2Array[i]->Panel1->Width=bImagetemp->Width;
                        fForm2Array[i]->Panel1->Height=bImagetemp->Height;
                        //调整打开窗口在母窗的位置
                        if(bImagetemp->Width < this->Width)
                        {
                                fForm2Array[i]->Width=bImagetemp->Width+10;
                                fForm2Array[i]->Left=(this->Width - fForm2Array[i]->Width)/2;
                        }
                        else
                                fForm2Array[i]->Width=this->Width;
                        if(bImagetemp->Height < this->Height)
                                fForm2Array[i]->Height=bImagetemp->Height+28;
                        else
                                fForm2Array[i]->Height=this->ClientHeight;
                        fForm2Array[i]->Show();
                        break;
                }
        }
        if(i>=50)
                MessageBox(NULL,"缓冲窗口队列已满,无法再打开新窗口.","Warning",MB_ICONWARNING);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N3Click(TObject *Sender)
{
        char cJPGNameEnd[5];
        char *cpEnd;
        if(OpenPictureDialog1->Execute())
        {
                cpEnd=StrEnd(OpenPictureDialog1->FileName.c_str());
                cpEnd-=3;
                StrCopy(cJPGNameEnd,cpEnd);
                if(!StrComp(cJPGNameEnd,"jpg"))
                {
                        jpeg->LoadFromFile(OpenPictureDialog1->FileName);
                        bImagetemp->Assign(jpeg);
                }
                else
                        bImagetemp->LoadFromFile(OpenPictureDialog1->FileName);
                sFileName=OpenPictureDialog1->FileName;
                f_CreatePalette();
        }

}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
        int i;
        bImagetemp=new Graphics::TBitmap();
        for(i=0;i<iFormNum;i++)
        {
                fForm2Array[i]=NULL;
                bForm2Null[i]=true;
        }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormShow(TObject *Sender)
{
        iActForm2=0;
        tGroundColor=(TColor)0x00FFFFFF;
        tGraphColor=clBlack;
        Form3 = new TForm3(this);
        Form3->Show();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::N10Click(TObject *Sender)
{
        if(!bForm2Null[iActForm2])
                fForm2Array[iActForm2]->f_imageGray1();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::N11Click(TObject *Sender)
{
        if(!bForm2Null[iActForm2])
                fForm2Array[iActForm2]->f_imageGray2();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::N12Click(TObject *Sender)
{
        if(bForm2Null[iActForm2])
                return;
        Form4=new TForm4(this);
        Form4->ShowModal();
        if(iReturnValue)
                fForm2Array[iActForm2]->f_imageGray3(fWr,fWg,fWb);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::N41Click(TObject *Sender)
{
        if(!bForm2Null[iActForm2])
                fForm2Array[iActForm2]->f_imageGray4();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::N31Click(TObject *Sender)
{
        if(!bForm2Null[iActForm2])
                fForm2Array[iActForm2]->f_imageTurnover();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::N15Click(TObject *Sender)
{
        if(!bForm2Null[iActForm2])
        {
                if(fForm2Array[iActForm2]->iPicNow==fForm2Array[iActForm2]->iPicEnd)
                        return;
                fForm2Array[iActForm2]->iPicNow--;
                fForm2Array[iActForm2]->Image1->Picture->Bitmap->Assign(fForm2Array[iActForm2]->bPicArray[fForm2Array[iActForm2]->iPicNow]);
        }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::N16Click(TObject *Sender)
{
        if(!bForm2Null[iActForm2])
        {
                if(((fForm2Array[iActForm2]->iPicNow+1)%iForm2PicNum)==fForm2Array[iActForm2]->iPicBegin)
                        return;
                fForm2Array[iActForm2]->iPicNow++;
                fForm2Array[iActForm2]->Image1->Picture->Bitmap->Assign(fForm2Array[iActForm2]->bPicArray[fForm2Array[iActForm2]->iPicNow]);
        }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::N17Click(TObject *Sender)
{
        int i;
        if(bForm2Null[iActForm2])
                return;
        gotosave:
                if(SaveDialog1->Execute())
                {
                        if(FileExists(SaveDialog1->FileName))
                        {
                                i=MessageBox(NULL,"您所指定的文件已经存在,是否覆盖?","Question",MB_YESNOCANCEL|MB_ICONQUESTION);
                                if(i==IDNO)
                                        goto gotosave;
                                if(i==IDYES)
                                {
                                        if(!DeleteFile(SaveDialog1->FileName))
                                        {
                                                MessageBox(NULL,"指定的文件正在使用,无法覆盖","error",MB_OK|MB_ICONERROR);
                                                goto gotosave;
                                        }
                                }
                                else
                                        return;
                        }
                        fForm2Array[iActForm2]->Image1->Picture->SaveToFile(SaveDialog1->FileName);
                        MessageBox(NULL,"保存成功","OK",MB_OK);
                }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::N21Click(TObject *Sender)
{
        if(bForm2Null[iActForm2])
                return;
        Form5=new TForm5(this);
        Form5->ShowModal();
        if(iReturnValue)
                fForm2Array[iActForm2]->f_imageBright(ilineB);
}
//---------------------------------------------------------------------------


void __fastcall TForm1::N14Click(TObject *Sender)
{
        if(bForm2Null[iActForm2])
                return;
        Form6=new TForm6(this);
        Form6->ShowModal();
        if(iReturnValue)
                fForm2Array[iActForm2]->f_imageContrast(flineA,ilineB);
}

⌨️ 快捷键说明

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