private void button1_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(this.textBox1.Text.Trim())) { MessageBox.Show("请输入需要转换的信息!"); return; } string content = textBox1.Text; Hashtable hints= new Hashtable(); hints.Add(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);//纠错级别 hints.Add(EncodeHintType.CHARACTER_SET, "UTF-8");//编码格式 ByteMatrix byteMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, 300, 300, hints); Bitmap bitmap = toBitmap(byteMatrix); pictureBox1.Image = bitmap; SaveFileDialog sFD = new SaveFileDialog(); sFD.Filter = "*.png|*.png"; sFD.AddExtension = true; try { if (sFD.ShowDialog() == DialogResult.OK) { writeToFile(byteMatrix, System.Drawing.Imaging.ImageFormat.Png, sFD.FileName); } } catch (Exception ex) { MessageBox.Show(ex.Message); } } public static void writeToFile(ByteMatrix matrix, System.Drawing.Imaging.ImageFormat format, string file) { System.Drawing.Imaging.EncoderParameters eps = new System.Drawing.Imaging.EncoderParameters(); eps.Param[0] = new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 100L); Bitmap bmap = toBitmap(matrix); bmap.Save(file, format); } public static Bitmap toBitmap(ByteMatrix matrix) { int width = matrix.Width; int height = matrix.Height; Bitmap bmap = new Bitmap(width, height, System.Drawing.Imaging.PixelFormat.Format32bppArgb); for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { bmap.SetPixel(x, y, matrix.get_Renamed(x, y) != -1 ? ColorTranslator.FromHtml("Purple") : ColorTranslator.FromHtml("0xFFFFFFFF"));//可以自定义颜色和背景色 } } return bmap; }
更多c#裁剪图片后使用zxing生成二维码相关文章请关注PHP中文网!