亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        用C++開發(fā)圖片批量處理軟件

        2009-07-24 08:51:42
        中國(guó)教育信息化 2009年6期

        曹 娜

        一、需求分析

        筆者從事國(guó)畫教學(xué)工作,但也是一個(gè)編程發(fā)燒友,在長(zhǎng)期從事畫畫的創(chuàng)作中,利用信息化手段,將創(chuàng)造作品保存到計(jì)算機(jī)里,通過(guò)網(wǎng)絡(luò)可以和同行進(jìn)行交流,也可以將自己的作品公布到網(wǎng)站上,為教學(xué)研究開創(chuàng)了一條創(chuàng)新之路。但在通過(guò)網(wǎng)絡(luò)交流的時(shí)候遇到了一個(gè)很大的問(wèn)題,用數(shù)碼相機(jī)或者掃描儀,獲取的圖片字節(jié)數(shù)太大,少則幾兆,多則幾十兆,給網(wǎng)絡(luò)傳輸和網(wǎng)站公布都帶來(lái)了不少的麻煩,通過(guò)PS能夠?qū)⑦@些大字節(jié)數(shù)的圖片文件處理為大小適中的圖片(以便使備份與同行相互遠(yuǎn)程傳輸也顯得比較容易)。但不能夠自動(dòng)批量處理,而其有版權(quán)的問(wèn)題,經(jīng)過(guò)半年的努力,筆者用C++開發(fā)了自動(dòng)批量處理的圖片處理軟件。

        軟件開發(fā)考慮到可應(yīng)用到其他領(lǐng)域,因此需考慮通用的因素,軟件進(jìn)入界面如圖1所示。

        二、軟件功能

        1.視頻瀏覽:如果當(dāng)前文件夾下有視頻文件,可以進(jìn)行瀏覽,只能播放mpeg格式,如果圖片文件列表第一個(gè)文件是視頻格式文件,就自動(dòng)播放,如果要處理圖片文件,單擊“結(jié)束視頻”。

        2.轉(zhuǎn)換圖片:?jiǎn)螕粑募斜砜蛭募?,單擊“轉(zhuǎn)換設(shè)置”顯示當(dāng)前選準(zhǔn)圖片的像素高度和寬度,保持圖片縱橫比保持圖片不變形,輸入要轉(zhuǎn)換的像素?cái)?shù)據(jù),按照原圖片的縱橫比計(jì)算相對(duì)應(yīng)的像素,并加以顯示。選擇“轉(zhuǎn)換當(dāng)前圖片”,是指轉(zhuǎn)換當(dāng)前選準(zhǔn)的圖片,選擇“連續(xù)轉(zhuǎn)換”是指自動(dòng)連續(xù)轉(zhuǎn)換左邊文件列表框內(nèi)的所有圖片文件,按照統(tǒng)一像素尺寸、同一格式進(jìn)行轉(zhuǎn)換,這種情況適用于圖片大小格式一樣的一組照片;“轉(zhuǎn)換文件另存”是指轉(zhuǎn)換成的目標(biāo)文件另存為,原文件名_1.jpg,

        “覆蓋原文件”是指轉(zhuǎn)換動(dòng)作完成生成的文件名就是選準(zhǔn)的文件名,將原文件名覆蓋,這種覆蓋無(wú)法恢復(fù)。

        3.可用于教師編寫專業(yè)教材時(shí),對(duì)教材插圖的處理,利用單個(gè)圖片文件的處理。

        三、代碼實(shí)現(xiàn)

        單擊“執(zhí)行”(Button7)事件函數(shù)

        void__fastcall TForm1::Button7Click(TObject *Sender)

        {

        Form1->Button8->Enabled=false;

        Form1->Panel6->Visible=false;

        if(Form1->RadioButton1->Checked==true)//轉(zhuǎn)換當(dāng)前圖片

        {

        ppc=ppc.LowerCase();

        int k=ppc.Pos(".jpg");

        int k1=ppc.Pos(".jpeg");

        int j=ppc.Pos(".bmp");

        if(j>0 || k>0 || k1>0)

        {

        WRJPG(ppc);//-----轉(zhuǎn)換函數(shù)

        Application->MessageBox("圖片大小轉(zhuǎn)換成功","信息",48);

        Form1->FileListBox1->Update();

        }

        else

        {

        String kdv="";

        kdv=kdv+ppc+"不是圖片文件,所以無(wú)法轉(zhuǎn)換";

        Application->MessageBox(kdv.c_str(),"信息",48);

        }

        }

        if(Form1->RadioButton2->Checked==true)//連續(xù)轉(zhuǎn)換

        {

        int mk=Form1->FileListBox1->Items->Count;//獲取圖片文件列表總數(shù)

        int ndkf=0;

        Form1->ProgressBar1->Min=0;

        Form1->ProgressBar1->Max=mk;

        Form1->ProgressBar1->Visible=true;

        for(int i=0;i<mk;i++)//---執(zhí)行連續(xù)轉(zhuǎn)換循環(huán)

        {

        Form1->ProgressBar1->Position=i;

        Application->ProcessMessages();

        ppc=Form1->FileListBox1->Items->Strings[i];

        ppc=ppc.LowerCase();

        int k=ppc.Pos(".jpg");

        int k1=ppc.Pos(".jpeg");

        int j=ppc.Pos(".bmp");

        if(j>0 || k>0 || k1>0)

        {

        try {

        Form1->Image1->Picture->LoadFromFile(ppc);

        ndkf=ndkf+1;

        WRJPG(ppc);//--核心轉(zhuǎn)換函數(shù)

        }

        catch(...){}

        }

        }

        Form1->ProgressBar1->Position=mk;

        Form1->ProgressBar1->Visible=false;

        Form1->FileListBox1->Update();

        String dkc="";

        dkc=dkc+"共有"+IntToStr(ndkf).c_str()+"個(gè)圖片文件進(jìn)行成功轉(zhuǎn)換"; ;

        Application->MessageBox(dkc.c_str(),"信息",48);

        }

        Form1->Button8->Enabled=true;

        }

        核心轉(zhuǎn)換函數(shù)WRJPG();

        void __fastcall TForm1::WRJPG(AnsiString filename)

        {

        if(p<=0 || q<=0) return ;//轉(zhuǎn)換像素的寬度和高度

        if(p>0 && q>0)

        {

        Graphics::TBitmap *tmpBitmap = new Graphics::TBitmap();//動(dòng)態(tài)生成位圖類

        Graphics::TBitmap *tmpBitmap2 = new Graphics::TBitmap();//動(dòng)態(tài)生成位圖類

        TJPEGImage*tmpBitmap1 = new TJPEGImage();//動(dòng)態(tài)生成JPG類

        filename=filename.LowerCase();

        int lq=filename.Pos(".bmp");

        int lp=filename.Pos(".jpg");

        int lp1=filename.Pos(".jpeg");

        if(lp>0 || lp1>0) {

        tmpBitmap1->LoadFromFile(filename);//將位圖裝載到生成的位圖類tmpBitmap1

        tmpBitmap->Assign(tmpBitmap1);//將位圖類轉(zhuǎn)換為jpg類

        }

        if(lq>0)

        tmpBitmap->LoadFromFile(filename);

        tmpBitmap2->W(wǎng)idth=q;

        tmpBitmap2->Height=p;

        tmpBitmap2->Canvas->StretchDraw(Rect

        (0,0,tmpBitmap2->W(wǎng)idth,tmpBitmap2->Height),tmpBitmap);//將轉(zhuǎn)換目標(biāo)像素畫布

        TJPEGImage *jp = new TJPEGImage();

        try

        {

        //將位圖文件寫入TJPEGImage 類

        jp->Assign(tmpBitmap2);

        jp->CompressionQuality = 85;//指的是轉(zhuǎn)換質(zhì)量,100為最高質(zhì)量,加上這句就可以了

        jp->Compress();//執(zhí)行寫入

        AnsiString jpc,jpd;

        //int l0=filename.Length();

        int l1=filename.Pos(".");

        if(l1>0)//有擴(kuò)展名

        {

        jpc=filename.SubString(1,l1-1);

        if(Form1->RadioButton4->Checked==true)//覆蓋原圖片文件

        {

        if(lp1>0)

        jpc=jpc+".jpeg";

        else

        jpc=jpc+".jpg";

        }

        if(Form1->RadioButton3->Checked==true)//另存為文件

        {

        if(lp1>0)

        jpc=jpc+"_1.jpeg";

        else

        jpc=jpc+"_1.jpg";//原文件名+“_1.jpg”

        }

        }

        if(l1<=0)//沒(méi)有擴(kuò)展名

        {

        jpc=filename;

        if(Form1->RadioButton4->Checked==true)

        {

        if(lp1>0)

        jpc=jpc+".jpeg";

        else

        jpc=jpc+".jpg";

        }

        if(Form1->RadioButton3->Checked==true)

        {

        if(lp1>0)

        jpc=jpc+"_1.jpeg";

        else

        jpc=jpc+"_1.jpg";

        }

        }

        //Application->MessageBox(jpc.c_str(),filename.c_str(),48);

        jp->SaveToFile(jpc);//將jpg類保存為jpc文件

        }

        __finally

        {

        delete jp;//刪除jp類

        }

        delete tmpBitmap;

        delete tmpBitmap1;

        delete tmpBitmap2;

        }//p>0 && q>0

        }

        亚瑟国产精品久久| 亚洲人妻御姐中文字幕| 国产精品视频白浆免费视频| 亚洲av成人无码一二三在线观看| 九九99久久精品国产| 国产精品一区二区久久乐下载| 午夜亚洲精品视频网站| 精品一区二区av天堂色偷偷| 激情内射日本一区二区三区 | 都市激情亚洲综合一区| 青青草在线免费视频播放| 中文字幕人妻无码一夲道| 日本成人久久| 日本午夜一区二区视频| 国产在线一区二区三区四区不卡| 粉嫩被粗大进进出出视频| 在线视频这里只有精品| 91麻豆精品一区二区三区| 中文字幕一区二区中出后入| 亚洲国产成人无码av在线影院| 无码国产精品一区二区免费97| 亚洲国产不卡免费视频| 嗯啊好爽高潮了在线观看| 女人被爽到呻吟gif动态图视看| 国产成人精品日本亚洲专区6| 中文字幕精品久久一区二区三区 | 偷拍视频十八岁一区二区三区| 精品日韩亚洲av无码| 日韩人妻无码一区二区三区久久99 | 不卡av一区二区在线| 看久久久久久a级毛片| 99精品视频在线观看| 久久免费网站91色网站| 日本高清一道本一区二区| 黑人巨大跨种族video| 思思99热| 国产自拍一区在线视频| 狠狠人妻久久久久久综合蜜桃| 中文字幕亚洲无线码在一区| 男女干逼视频免费网站| 亚洲最大水蜜桃在线观看|