摘 要:在競爭日趨激烈的商品經濟浪潮中,包裝產品的色彩構成日益成為左右商品銷售的重要因素,因而包裝裝潢圖案的色彩處理引起了社會的廣泛關注。為此,對包裝裝潢圖案色彩處理軟件設計思路進行了探討,以期使其在包裝裝潢的設計過程中發揮應有的作用,就具有重要的現實意義。
關鍵詞:軟件 設計思路 包裝裝潢
一、整體設計思路
為實現我們所需的軟件,就要對軟件設計有一個整體構思,結合包裝裝潢圖案的特點,仔細分析每一部分之間的相互關系,以達到滿意的設計效果。本文的軟件設計分為以下幾個部分:
首先,打開一幅真彩色位圖,通過在RGB顏色空間中單獨或同時調節R、G、B的值,得到變換后的圖像,并予以保存。
其次,利用RGB和CMYK顏色空間的數學轉換關系,設計出相關算法,通過單獨或同時調節C、M、Y、K的值,得到變換后的圖像,并保存之。
第三,設計出HSV顏色空間和RGB空間之間的轉換算法,通過單獨或同時調節H、S、V的值,改變圖像色彩的搭配效果,并保存變換后的圖像。
第四,通過連續調節圖像中每一像素點的R、G、B值,產生出顏色漸變效果,捕捉到最佳的色彩搭配,并保存捕捉到的圖像。
第五,結合色彩處理其他方面的應用,建立一個友好的人機界面,使包裝產品設計人員方便使用。
二、常用菜單及對話框
以下是該軟件中設計的一些操作功能,如果單從圖1和圖2的菜單來看,程序功能略顯簡單,但是該軟件主要的功能集中在圖3對話框上,從對話框中可以看出,該軟件可利用滑塊控件調節R、G、B的分量值,同時在編輯框中顯示器調整的具體大小,還可進行微調,有助于包裝裝潢圖案設計人員定量的控制圖像色彩的變化效果。

三、具體算法設計
(一)通過設計的CDib類,打開一幅真彩色位圖。
(二)利用Save()函數保存一幅真彩色位圖,其代碼如下:
BOOL CDib::Save( )const
{
CFileDialogdlg(FALSE, ″bmp″);//存文件對話框
if(d1g.DoModal()= =IDOK){
CString str=d1g.GetFileName( );
//獲得用戶提供的文件名
GFilefile(str, CFile :: modeCreate|CFile::modeWrite|
CFile:: aypeBinary);
return Save(file);//調用Save(CFile)存盤
}
return FALSE;
}
(三)利用ColorAdjust( )函數,通過調節R、G、B的分量值,進行圖像變換,其代碼如下:
BOOL CDib::ColorAdjust(int rRate, int gRate, int bRate)
{
if(!m}BMINumColors( )!=0)
//若位圖不存在或不是真彩色則返回FALSE
return FALSE;
RGBTRIPLE* pCol;
int x, y, width=Width(), height=Height( );
for(y=0;y { //每次處理一條掃描線 pCol=(RGBTRIPLE*)(m-pBits+m-SLength*y); // pCol指向第y條掃描線 for(x=0; x < width; x ++){ //每次處理一個像素 pCol->rgbtRed=EVALUATE(pCol->rgbtRed,rRate); pCol->rgbtGreen=EVALUATE(pCol->rgbtGreen,gRate); pCol ->rgbtBlue =EVALUATE(pCol->rgbtBlue,bRate); pC.ol++; return TRUE; { { (四)創建ColorShade( )函數,通過依次調節R, G, B的分量值,形成圖像中顏色的漸變效果,便于設計人員調整顏色的最佳搭配。其代碼如下: BOOL CDib::ColorShade(int x, int y) { if(!m-pBMINumColors!=0) //若位圖不存在或不是真彩色則返回FALSE return FALSE; RGBTRIPLE*pGol; pCol=(RGBTRIPLE*)(m-pBits+m-SLength*Y); // pCol指向第Y條掃描線 pCol[x].rgbtRed++; pCol[x].rgbtGreen++; pCol[x].rgbtBlue++; return TRUE; } 該函數中,x、y分別代表圖像中像素的水平和垂直坐標。可以看出,該函數每調用一次就將給定位置的R、G、B值加1,這樣就產生了顏色的漸變效果。一般來說,軟件開發人員都是使用多線程技術達到這一效果,然而,本課題中反其道而行之,采用了單線程技術,主要基于以下考慮:盡管通過多線程可以帶來很多好處,比如給軟件開發人員帶來很大的靈活性、應用程序可以更充分利用CPU,但如果線程開得太多,系統就會增加許多額外開銷。這樣許多寶貴的CPU資源就花在了各個線程間的切換上面去了,反而降低了CPU的使用效率;現在多數計算機都是單處理器(CPU),在這種機器上運行多線程程序,試想如果兩個非常活躍的線程為了搶奪對CPU的控制權,則會在線程切換中消耗很多的CPU資源,影響機器的正常運轉。所以,在實際編程中,要根據需要靈活地使用多線程,除非確有必要才使用。本文使用單線程編程,希望能夠達到或超過使用多線程的效果。 參考文獻: [1] 胡佩廉.注意原理在包裝裝潢設計中的運用.印刷雜志,2000,(11):21 -29. [2] 梁燕君.淺談商品包裝裝潢美.上海包裝,2000,(1):19-23. [3] 宋寶峰.包裝容器結構設計與制造.印刷工業出版社,1996,(4):314. [4] 王榮汪,錢曉星.CAD技術在包裝裝潢設計領域的應用.南京航空航天大學學報,1996.28,(6):812-817.