C#呼叫ThoughtWorks.QRCode.dll生成帶引數二維碼
阿新 • • 發佈:2019-01-28
ThoughtWorks.QRCode.Codec.QRCodeEncoder encoder = new QRCodeEncoder();
encoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;//編碼方式(注意:BYTE能支援中文,ALPHA_NUMERIC掃描出來的都是數字)
encoder.QRCodeScale = 4;//大小(值越大生成的二維碼圖片畫素越高)
encoder.QRCodeVersion = 0;//版本(注意:設定為0主要是防止編碼的字串太長時發生錯誤)
encoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;//錯誤效驗、錯誤更正(有4個等級)
String qrdata = "二維碼資訊";
System.Drawing.Bitmap bp = encoder.Encode(qrdata.ToString(), Encoding.GetEncoding("GB2312"));
Image image = bp;
pictureBox1.Image = bp;
儲存二維碼圖片:
SaveFileDialog sf = new SaveFileDialog();
sf.Title = "選擇儲存檔案位置";
sf.Filter = "儲存圖片(*.jpg) |*.jpg|所有檔案(*.*) |*.*";
//設定預設檔案型別顯示順序
sf.FilterIndex = 1;
//儲存對話方塊是否記憶上次開啟的目錄
sf.RestoreDirectory = true;
if (sf.ShowDialog() == DialogResult.OK)
{
Image im = this.pictureBox1.Image;
//獲得檔案路徑
string localFilePath = sf.FileName.ToString();
if (sf.FileName != "")
{
string fileNameExt = localFilePath.Substring(localFilePath.LastIndexOf("\\") + 1);//獲取檔名,不帶路徑
// newFileName = fileNameExt+DateTime.Now.ToString("yyyyMMdd") ;//給檔名後加上時間
string FilePath = localFilePath.Substring(0, localFilePath.LastIndexOf(".")); //獲取檔案路徑,帶檔名,不帶字尾
string fn = sf.FileName;
pictureBox1.Image.Save(FilePath +"-"+ DateTime.Now.ToString("yyyyMMdd") + ".jpg");
}
}
//解析二維碼資訊
// QRCodeDecoder decoder = new QRCodeDecoder();
// String decodedString = decoder.decode(new QRCodeBitmapImage(new Bitmap(pictureBox1.Image)));
//this.label3.Text = decodedString;
encoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;//編碼方式(注意:BYTE能支援中文,ALPHA_NUMERIC掃描出來的都是數字)
encoder.QRCodeScale = 4;//大小(值越大生成的二維碼圖片畫素越高)
encoder.QRCodeVersion = 0;//版本(注意:設定為0主要是防止編碼的字串太長時發生錯誤)
encoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;//錯誤效驗、錯誤更正(有4個等級)
String qrdata = "二維碼資訊";
System.Drawing.Bitmap bp = encoder.Encode(qrdata.ToString(), Encoding.GetEncoding("GB2312"));
Image image = bp;
pictureBox1.Image = bp;
儲存二維碼圖片:
SaveFileDialog sf = new SaveFileDialog();
sf.Title = "選擇儲存檔案位置";
sf.Filter = "儲存圖片(*.jpg) |*.jpg|所有檔案(*.*) |*.*";
//設定預設檔案型別顯示順序
sf.FilterIndex = 1;
//儲存對話方塊是否記憶上次開啟的目錄
sf.RestoreDirectory = true;
if (sf.ShowDialog() == DialogResult.OK)
{
Image im = this.pictureBox1.Image;
//獲得檔案路徑
string localFilePath = sf.FileName.ToString();
if (sf.FileName != "")
{
string fileNameExt = localFilePath.Substring(localFilePath.LastIndexOf("\\") + 1);//獲取檔名,不帶路徑
// newFileName = fileNameExt+DateTime.Now.ToString("yyyyMMdd") ;//給檔名後加上時間
string FilePath = localFilePath.Substring(0, localFilePath.LastIndexOf(".")); //獲取檔案路徑,帶檔名,不帶字尾
string fn = sf.FileName;
pictureBox1.Image.Save(FilePath +"-"+ DateTime.Now.ToString("yyyyMMdd") + ".jpg");
}
}
//解析二維碼資訊
// QRCodeDecoder decoder = new QRCodeDecoder();
// String decodedString = decoder.decode(new QRCodeBitmapImage(new Bitmap(pictureBox1.Image)));
//this.label3.Text = decodedString;