原創|使用教程|編輯:郝浩|2013-05-15 14:39:57.000|閱讀 659 次
概述:二維碼的優化與之前提到的一維碼的優化不同,我們需要同時調整垂直和水平大小。在本次的教程中將會給出具體的步驟和示例代碼。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
二維碼的優化與之前提到的一維碼的優化不同,我們需要同時調整垂直和水平大小。》》》免費下載TBarCode SDK最新版
Barcode width = 60 mm
Barcode height = 30 mm (就像常見的二維碼PDF417一樣) Resolution of the output device = 200 dpi
下面的代碼示例顯示了完整的優化2D碼的計算方法,以便優化之后的2D碼符合給定輸出設備的分辨率。
1) 指定條碼類型和數據。
2) 指定條碼尺寸。
為了最優化輸出質量我們會做所有的計算符合設備像素。因此給定的大小單位(在這里是mm毫米)必須被轉換成設備像素的單位以符合輸出設備的分辨率.
LONG ldpi = 200;
LONG lBarcodeWidth = (LONG)ConvertMMToPixel (60.0f, ldpi); // 60 mm --> 472.44pix
LONG lBarcodeHeight = (LONG)ConvertMMToPixel (30.0f, ldpi); // 30 mm -->236.22pix
3) 獲取水平和垂直模塊數。
這個函數返回的計算得出的條形碼所需模塊數量。這通常是一個整數!優化對于非整數值將不會進行!
LONG
lCols = ::BCGet2D_XCols( pBC );
LONG lRows = ::BCGet2D_XRows ( pBC );
avoid division by zero if( lCols > 0 && lRows > 0 )
4) 優化條碼的寬和高。
優化后的條碼單個模塊寬度必須是單個像素的整數倍!
因此需要淘汰所有小數點后的數值。在這個示例中是通過ceil-function函數來處理的。然后模塊寬度/高度再乘以模塊數。
lBarcodeWidth = (LONG)ceil((DOUBLE)lBarcodeWidth /(DOUBLE)lCols) * lCols; lBarcodeHeight = (LONG)ceil((DOUBLE)lBarcodeHeight/(DOUBLE)lRows) * lRows;
5) 接下來條碼的寬度和高度就可以用來創建或者是以圖片的形式保存條碼。在這個例子中條碼將會被保存為圖片。
::BCSaveImage ( pBC, "C:\\MyBarcode.BMP", eIMBmp,
lBarcodeWidth, lBarcodeHeight, ldpi, ldpi );
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都控件網