程序代碼生成3d文字(3d編程語(yǔ)言)
背景
二維碼是越來(lái)越流行了,很多地方都有可能是使用到。如果是靜態(tài)的二維碼還是比較好處理的,通過在線工具就可以直接生成一張二維碼圖片,比如:草料二維碼。但有的時(shí)候是需要?jiǎng)討B(tài)生成的(根據(jù)動(dòng)態(tài)數(shù)據(jù)生成),這個(gè)使用在線就工具就無(wú)法實(shí)現(xiàn)了。最好是能在代碼中直接生成一個(gè)二維碼圖片,這里我就介紹下使用QRCoder類庫(kù)在代碼中生成二維碼。
網(wǎng)上生成二維碼的組件還是挺多的,但是真正好用且快速的卻不多。QRCoder就是我在眾多中找到的,它的生成速度快、而且使用也相當(dāng)方便。
開始編碼
1、安裝 QRCoder組件。在項(xiàng)目上通過NuGet包管理器來(lái)安裝,搜索名稱:QRCoder
2、在代碼中添加引用:using QRCoder;
3、編碼生成
pictureBoxQRCode.BackgroundImage = qrCode.GetGraphic( 20, Color.Black, Color.White, GetIconBitmap, ( int) iconSize.Value);
this.pictureBoxQRCode.Size = newSystem.Drawing.Size(pictureBoxQRCode.Width, pictureBoxQRCode.Height); //Set the SizeMode to center the image.this.pictureBoxQRCode.SizeMode = PictureBoxSizeMode.CenterImage;
pictureBoxQRCode.SizeMode = PictureBoxSizeMode.StretchImage;}}}}
運(yùn)行效果
上面代碼運(yùn)行的結(jié)果
加個(gè)Logo吧
還可以加上logo
完整代碼
namespaceQRCoderDemo{publicpartialclassForm1: Form{publicForm1( ) {InitializeComponent;}
privatevoidForm1_Load( objectsender, EventArgs e ) {comboBoxECC.SelectedIndex = 0; //Pre-select ECC level "L"RenderQrCode;}
展開全文
privatevoidbuttonGenerate_Click( objectsender, EventArgs e ) {RenderQrCode;}
privatevoidRenderQrCode( ) {stringlevel = comboBoxECC.SelectedItem.ToString; QRCodeGenerator.ECCLevel eccLevel = (QRCodeGenerator.ECCLevel)(level == "L"? 0: level == "M"? 1: level == "Q"? 2: 3); using(QRCodeGenerator qrGenerator = newQRCodeGenerator) {using(QRCodeData qrCodeData = qrGenerator.CreateQrCode(textBoxQRCode.Text, eccLevel)) {using(QRCode qrCode = newQRCode(qrCodeData)) {
pictureBoxQRCode.BackgroundImage = qrCode.GetGraphic( 20, Color.Black, Color.White, GetIconBitmap, ( int) iconSize.Value);
this.pictureBoxQRCode.Size = newSystem.Drawing.Size(pictureBoxQRCode.Width, pictureBoxQRCode.Height); //Set the SizeMode to center the image.this.pictureBoxQRCode.SizeMode = PictureBoxSizeMode.CenterImage;
pictureBoxQRCode.SizeMode = PictureBoxSizeMode.StretchImage;}}}}
privateBitmap GetIconBitmap( ) {Bitmap img = null; if(iconPath.Text.Length 0) {try{img = newBitmap(iconPath.Text); }catch(Exception) {}}returnimg; }
privatevoidselectIconBtn_Click( objectsender, EventArgs e ) {OpenFileDialog openFileDlg = newOpenFileDialog; openFileDlg.Title = "Select icon"; openFileDlg.Multiselect = false; openFileDlg.CheckFileExists = true; if(openFileDlg.ShowDialog == System.Windows.Forms.DialogResult.OK) {iconPath.Text = openFileDlg.FileName;if(iconSize.Value == 0) {iconSize.Value = 15; }}else{iconPath.Text = ""; }}
privatevoidbtn_save_Click( objectsender, EventArgs e ) {
// Displays a SaveFileDialog so the user can save the ImageSaveFileDialog saveFileDialog1 = newSaveFileDialog; saveFileDialog1.Filter = "Bitmap Image|*.bmp|PNG Image|*.png|JPeg Image|*.jpg|Gif Image|*.gif"; saveFileDialog1.Title = "Save an Image File"; saveFileDialog1.ShowDialog;
// If the file name is not an empty string open it for saving.if(saveFileDialog1.FileName != "") {// Saves the Image via a FileStream created by the OpenFile method.using(FileStream fs = (System.IO.FileStream) saveFileDialog1.OpenFile) {// Saves the Image in the appropriate ImageFormat based upon the// File type selected in the dialog box.// NOTE that the FilterIndex property is one-based.
ImageFormat imageFormat = null; switch(saveFileDialog1.FilterIndex) {case1: imageFormat = ImageFormat.Bmp;break; case2: imageFormat = ImageFormat.Png;break; case3: imageFormat = ImageFormat.Jpeg;break; case4: imageFormat = ImageFormat.Gif;break; default: thrownewNotSupportedException( "File extension is not supported"); }
pictureBoxQRCode.BackgroundImage.Save(fs, imageFormat);fs.Close;}}
}
publicvoidExportToBmp( stringpath ) {
}
privatevoidtextBoxQRCode_TextChanged( objectsender, EventArgs e ) {RenderQrCode;}
privatevoidcomboBoxECC_SelectedIndexChanged( objectsender, EventArgs e ) {RenderQrCode;}}}
掃描二維碼推送至手機(jī)訪問。
版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請(qǐng)注明出處。