public static Bitmap GetCode(string str, ENCODE_MODE em = ENCODE_MODE.BYTE, ERROR_CORRECTION ec = ERROR_CORRECTION.MIDDLE, int Version = 0, int Scale = 4 ) { try { if (String.IsNullOrEmpty(str)) { throw new Exception("字符串为空"); } //初始化二维码生成工具 QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); qrCodeEncoder.QRCodeEncodeMode = (QRCodeEncoder.ENCODE_MODE)em; qrCodeEncoder.QRCodeErrorCorrect = (QRCodeEncoder.ERROR_CORRECTION)ec; qrCodeEncoder.QRCodeVersion = Version; qrCodeEncoder.QRCodeScale = Scale; //将字符串生成二维码图片 Bitmap image = qrCodeEncoder.Encode(str, Encoding.UTF8); return(image); } catch (Exception ex) { throw ex; } }
private void btnCapture_Click(object sender, EventArgs e) { isInit = pusherPtr != IntPtr.Zero; //pusherSubPtr = CapturePusher.CapturePusherSDK.EasyScreenLive_Create(); if (!isInit) { return; } if (!isCapture) { EncoderType encodeType = (EncoderType)Enum.Parse(typeof(EncoderType), this.comboBox1.Text); SOURCE_TYPE captureType = this.CaptureType.Text == "屏幕采集" ? SOURCE_TYPE.SOURCE_SCREEN_CAPTURE : SOURCE_TYPE.SOURCE_RTSP_STREAM; string szDataType = captureType == SOURCE_TYPE.SOURCE_LOCAL_CAMERA ? "YUY2" : "RGB24"; int captureRet = 0; ENCODE_MODE encMode = ENCODE_MODE.H264; captureRet = CapturePusher.CapturePusherSDK.EasyScreenLive_StartCapture(pusherPtr, captureType, "rtsp://192.168.0.101:8004/12345", this.panel1.Handle /*IntPtr.Zero*/, encodeType, szDataType, 1280, 720, 1024, false, encMode); isCapture = captureRet >= 0; if (isCapture) { btnCapture.Text = "Stop"; } Log(string.Format("開啓{0}{1}", this.CaptureType.Text, isCapture ? "成功" : "失敗")); } else { if (pusherPtr != IntPtr.Zero) { if (isPusherRtsp) { CapturePusher.CapturePusherSDK.EasyScreenLive_StopPush(pusherPtr, PUSH_TYPE.PUSH_RTSP); this.button1.Text = "RTSP Push"; isPusherRtsp = false; } if (isPusherRtmp) { CapturePusher.CapturePusherSDK.EasyScreenLive_StopPush(pusherPtr, PUSH_TYPE.PUSH_RTMP); this.button2.Text = "RTMP Push"; isPusherRtsp = false; } if (isServerOpen) { CapturePusher.CapturePusherSDK.EasyScreenLive_StopServer(pusherPtr, serverId0); CapturePusher.CapturePusherSDK.EasyScreenLive_StopServer(pusherPtr, serverId1); CapturePusher.CapturePusherSDK.EasyScreenLive_StopServer(pusherPtr, serverId2); this.btnStop.Text = "RTSP Server"; isServerOpen = false; } CapturePusher.CapturePusherSDK.EasyScreenLive_StopCapture(pusherPtr); } isCapture = false; Log("停止采集"); btnCapture.Text = "Capture"; } }
/// 生成二维码 /// </summary> /// <param name="dir">生成二维码目录</param> /// <param name="strData">要生成的文字或者数字,支持中文。如: "4408810820 深圳-广州" 或者:4444444444</param> /// <param name="qrEncoding">三种尺寸:BYTE ,ALPHA_NUMERIC,NUMERIC</param> /// <param name="level">大小:L M Q H</param> /// <param name="version">版本:如 8</param> /// <param name="scale">比例:如 4</param> /// <returns></returns> public static string CreateCode_Choose(string dir, string strData, ENCODE_MODE qrEncoding, ERROR_CORRECTION level, int version, int scale) { QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); ENCODE_MODE encoding = qrEncoding; switch (encoding) { case ENCODE_MODE.BYTE: qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; break; case ENCODE_MODE.ALPHA_NUMERIC: qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.ALPHA_NUMERIC; break; case ENCODE_MODE.NUMERIC: qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.NUMERIC; break; default: qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; break; } qrCodeEncoder.QRCodeScale = scale; qrCodeEncoder.QRCodeVersion = version; switch (level) { case ERROR_CORRECTION.L: qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L; break; case ERROR_CORRECTION.M: qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; break; case ERROR_CORRECTION.Q: qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.Q; break; default: qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.H; break; } //文字生成图片 Image image = qrCodeEncoder.Encode(strData); string filename = DateTime.Now.ToString("yyyyMMddhhmmssfff").ToString() + ".jpg"; string filepath = dir.TrimEnd('\\') + "\\" + filename; //如果文件夹不存在,则创建 //if (!Directory.Exists(filepath)) // Directory.CreateDirectory(filepath); System.IO.FileStream fs = new System.IO.FileStream(filepath, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write); image.Save(fs, System.Drawing.Imaging.ImageFormat.Jpeg); fs.Close(); image.Dispose(); return(filepath); }
public QRCodeEncoder() { this.qrcodeErrorCorrect = ERROR_CORRECTION.M; this.qrcodeEncodeMode = ENCODE_MODE.BYTE; this.qrcodeVersion = 7; this.qrcodeStructureappendN = 0; this.qrcodeStructureappendM = 0; this.qrcodeStructureappendParity = 0; this.qrcodeStructureappendOriginaldata = ""; this.qrCodeScale = 4; this.qrCodeBackgroundColor = System.Drawing.Color.White; this.qrCodeForegroundColor = System.Drawing.Color.Black; }
public QRCodeEncoder() { qrcodeErrorCorrect = ERROR_CORRECTION.M; qrcodeEncodeMode = ENCODE_MODE.BYTE; qrcodeVersion = 7; qrcodeStructureappendN = 0; qrcodeStructureappendM = 0; qrcodeStructureappendParity = 0; qrcodeStructureappendOriginaldata = ""; qrCodeScale = 4; }
public QRCodeEncoder() { qrcodeErrorCorrect = ERROR_CORRECTION.M; qrcodeEncodeMode = ENCODE_MODE.BYTE; qrcodeVersion = 7; qrcodeStructureappendN = 0; qrcodeStructureappendM = 0; qrcodeStructureappendParity = 0; qrcodeStructureappendOriginaldata = ""; qrCodeScale = 4; qrCodeBackgroundColor = Color.White; qrCodeForegroundColor = Color.Black; }
/// <summary> /// Constructor /// </summary> public QRCodeEncoder() { qrcodeErrorCorrect = ERROR_CORRECTION.M; qrcodeEncodeMode = ENCODE_MODE.BYTE; qrcodeVersion = 7; qrcodeStructureappendN = 0; qrcodeStructureappendM = 0; qrcodeStructureappendParity = 0; qrcodeStructureappendOriginaldata = ""; qrCodeScale = 4; qrCodeBackgroundColor = Color.White; qrCodeForegroundColor = Color.Black; }
/// <summary> /// Constructor /// </summary> public QRCodeEncoder() { qrcodeErrorCorrect = ERROR_CORRECTION.M; qrcodeEncodeMode = ENCODE_MODE.BYTE; qrcodeVersion = 7; qrcodeStructureappendN = 0; qrcodeStructureappendM = 0; qrcodeStructureappendParity = 0; qrcodeStructureappendOriginaldata = ""; qrCodeScale = 4; qrCodeBackgroundColor = Color.White; qrCodeForegroundColor = Color.Black; //QRCODE_DATA_PATH = Environment.CurrentDirectory + @"\" + DATA_PATH; }
/// <summary> /// Constructor /// </summary> public QRCodeEncoder() { qrcodeErrorCorrect = ERROR_CORRECTION.M; qrcodeEncodeMode = ENCODE_MODE.BYTE; qrcodeVersion = 7; qrcodeStructureappendN = 0; qrcodeStructureappendM = 0; qrcodeStructureappendParity = 0; qrcodeStructureappendOriginaldata = ""; qrCodeScale = 4; qrCodeBackgroundColor = Color.White; qrCodeForegroundColor = Color.Black; QRCODE_DATA_PATH = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0].FullyQualifiedName) + @"\" + DATA_PATH; }
private static extern int EasyScreenLive_StartCapture(IntPtr pusherHandle, SOURCE_TYPE eSourceType, string szURL, int nCamId, int nAudioId, IntPtr hCapWnd, EncoderType encodeType, int nVideoWidth = 1280, int nVideoHeight = 720, int nFps = 30, int nBitRate = 1024, string szDataType = "RGB24", //VIDEO PARAM int nSampleRate = 44100, int nChannel = 2, bool bTransCode = false, ENCODE_MODE encodeMode = 0);
/// <summary> /// 開始音視頻數據捕捉 /// 返回1正常 /// </summary> /// <param name="pusherHandle">EasyPusher_Create返回值</param> /// <param name="eSourceType">推送數據源</param> /// <param name="hCapWnd">預覽句柄</param> /// <param name="encodeType">编码类型</param> /// <param name="szDataType">推送數據類型</param> /// <param name="nBitRate">比特率</param> /// <returns></returns> public static int EasyScreenLive_StartCapture(IntPtr pusherHandle, SOURCE_TYPE eSourceType, string szURL, IntPtr hCapWnd, EncoderType encodeType, string szDataType = "RGB24", int nWidth = 1280, int nHeight = 720, int nBitRate = 2048, bool bTranscode = false, ENCODE_MODE encMode = 0) { //注意:第五个参数是音频采集,0:采集,-1:不采集,没有音频输入一定要赋值-1 var ret = EasyScreenLive_StartCapture(pusherHandle, eSourceType, szURL, 0, -1, hCapWnd, encodeType, nVideoWidth: nWidth, nVideoHeight: nHeight, nBitRate: nBitRate, szDataType: szDataType, bTransCode: bTranscode, encodeMode: encMode); return(ret); }
/// <summary> /// 生成二维码 /// </summary> /// <param name="text">二维码文本</param> /// <param name="scale">尺寸</param> /// <param name="version">版本</param> /// <param name="mode">编码模式</param> /// <param name="errorCorrect">错误纠正级别</param> /// <returns></returns> public static Image GenerateQRCode(string text, int scale = 5, int version = 0, ENCODE_MODE mode = ENCODE_MODE.BYTE, ERROR_CORRECTION errorCorrect = ERROR_CORRECTION.M) { try { if (!string.IsNullOrEmpty(text)) { var qrCoder = new QRCodeEncoder(); qrCoder.QRCodeEncodeMode = EnumHelper.Parse <QRCodeEncoder.ENCODE_MODE>(mode.ToString()); qrCoder.QRCodeScale = 5; qrCoder.QRCodeVersion = 0; qrCoder.QRCodeErrorCorrect = EnumHelper.Parse <QRCodeEncoder.ERROR_CORRECTION>(errorCorrect.ToString()); return(Image.FromHbitmap(qrCoder.Encode(text, Encoding.GetEncoding("GB2312")).GetHbitmap())); } } catch { } return(null); }