C#ZXing.Net QRコードの生成、QRコードの識別、ロゴ付きQRコードの生成(二)
1874 ワード
1.ZXint.Netを使用してロゴ付きQRコードを生成
//////////////////////////////////staticvoid Generate 3(string text){//LOgooピクチャBitmap logo=new Bitmap(@「H:デスクトップスクリーン102.jpg」);////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////(EncodeHintType.ERROR_CORRECTION,ErrorCorrectionLevel.H);
//QRコードBitMatrix bm=writer.encode(text,BarcodeFormat.QR_CODE,300300,hint);BarcodeWriter barcodeWriter=new BarcodeWriter();Bitmap=barcodeWriter.Write(bm);
//QRコードの実際の寸法(QRコードの両側の空白を除いた実際の寸法)int[]rectangle=bm.getEnclosingRectangle()を取得する.
//挿入画像のサイズと位置を計算するint middleW=Math.Min((int)(rectangle[2]/3.5)、logo.Width);int middleH=Math.Min((int)(rectangle[3]/3.5)、logo.Height);int middleL=(map.Width-middleW)/2;int middleT=(map.Height-middleH)/2;
//imgをbmp形式に変換しないと、後でGraphicsオブジェクトBitmap bmpimg=new Bitmap(map.Width,map.Height,PixelFormat.Format 32 bppArgb)を作成できません.using(Graphics g=Graphics.FromImage(bmpimg)){g.InterpolationMode=System.Drawing.Drawing 2 D.InterpolationMode.HighQualityBicubic;g.SmoothingMode=System.Drawing.Drawing.Drawing 2 D.SmoothingMode.HighQuality;g.CompositingQuality=System.Drawing 2 D.CompositingQuality.HighQuality;g.Drawing.DrawImage(map,0,0);//////画像Graphics mGraphic=Graphics.Graphics.From Image(bmpimimimimage(bmpimimimimimage)g)//白底myGraphic.FillRectangle(Brushes.White,middleL,middleT,middleW,middleH);myGraphic.DrawImage(logo,middleL,middleT,middleW,middleH);
//bmpimg.Save(@「H:デスクトップスクリーンショットgenerate 3.png」,ImageFormat.Png);
呼び出し:
//////////////////////////////////staticvoid Generate 3(string text){//LOgooピクチャBitmap logo=new Bitmap(@「H:デスクトップスクリーン102.jpg」);////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////(EncodeHintType.ERROR_CORRECTION,ErrorCorrectionLevel.H);
//QRコードBitMatrix bm=writer.encode(text,BarcodeFormat.QR_CODE,300300,hint);BarcodeWriter barcodeWriter=new BarcodeWriter();Bitmap=barcodeWriter.Write(bm);
//QRコードの実際の寸法(QRコードの両側の空白を除いた実際の寸法)int[]rectangle=bm.getEnclosingRectangle()を取得する.
//挿入画像のサイズと位置を計算するint middleW=Math.Min((int)(rectangle[2]/3.5)、logo.Width);int middleH=Math.Min((int)(rectangle[3]/3.5)、logo.Height);int middleL=(map.Width-middleW)/2;int middleT=(map.Height-middleH)/2;
//imgをbmp形式に変換しないと、後でGraphicsオブジェクトBitmap bmpimg=new Bitmap(map.Width,map.Height,PixelFormat.Format 32 bppArgb)を作成できません.using(Graphics g=Graphics.FromImage(bmpimg)){g.InterpolationMode=System.Drawing.Drawing 2 D.InterpolationMode.HighQualityBicubic;g.SmoothingMode=System.Drawing.Drawing.Drawing 2 D.SmoothingMode.HighQuality;g.CompositingQuality=System.Drawing 2 D.CompositingQuality.HighQuality;g.Drawing.DrawImage(map,0,0);//////画像Graphics mGraphic=Graphics.Graphics.From Image(bmpimimimimage(bmpimimimimimage)g)//白底myGraphic.FillRectangle(Brushes.White,middleL,middleT,middleW,middleH);myGraphic.DrawImage(logo,middleL,middleT,middleW,middleH);
//bmpimg.Save(@「H:デスクトップスクリーンショットgenerate 3.png」,ImageFormat.Png);
呼び出し:
//
Generate3("https://www.baidu.com/");
Generate3("ionic /hybrid HTML5 , HTML、CSS JavaScript, , Ionic , ");