/// 下载时进行二维码识别 public void DownloadWithQrcodeRecognition() { string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID string key = "exampleobject"; //对象键 //.cssg-snippet-body-start:[download-with-qrcode-recognition] //二维码覆盖功能,将对识别出的二维码覆盖上马赛克。取值为0或1。0表示不开启二维码覆盖,1表示开启二维码覆盖,默认值0 QRCodeRecognitionRequest request = new QRCodeRecognitionRequest(bucket, key, 0); QRCodeRecognitionResult result = cosXml.QRCodeRecognition(request); //.cssg-snippet-body-end }
/// <summary> /// 下载时进行二维码识别 /// </summary> /// <param name="request"></param> /// <returns></returns> public QRCodeRecognitionResult QRCodeRecognition(QRCodeRecognitionRequest request) { return(Execute(request, new QRCodeRecognitionResult())); }
public void QRCodeRecognition() { string key = qrPhotoKey; // 下载云上有内容的 QR Code string srcPath = localQRCodeTempPhotoFilePath; GetObjectRequest getRequest = new GetObjectRequest(bucket, key, ".", localQRCodeTempPhotoFilePath); GetObjectResult getResult = QCloudServer.Instance().cosXml.GetObject(getRequest); Assert.True(200 == getResult.httpCode); // 开始请求上传时 QR code 识别 PutObjectRequest request = new PutObjectRequest(bucket, key, srcPath); JObject o = new JObject(); // 不返回原图 o["is_pic_info"] = 1; JArray rules = new JArray(); JObject rule = new JObject(); rule["bucket"] = bucket; rule["fileid"] = "qrcode.jpg"; //处理参数,规则参见:https://cloud.tencent.com/document/product/460/37513 rule["rule"] = "QRcode/cover/0"; rules.Add(rule); o["rules"] = rules; string ruleString = o.ToString(Formatting.None); request.SetRequestHeader("Pic-Operations", ruleString); //执行请求 PutObjectResult result = QCloudServer.Instance().cosXml.PutObject(request); var uploadResult = result.uploadResult; Assert.IsNotEmpty((result.GetResultInfo())); Assert.True(result.IsSuccessful()); Assert.NotNull(uploadResult); Assert.NotNull(uploadResult.originalInfo); Assert.NotNull(uploadResult.originalInfo.ETag); Assert.NotNull(uploadResult.originalInfo.Key); Assert.NotNull(uploadResult.originalInfo.Location); Assert.NotNull(uploadResult.originalInfo.imageInfo.Format); Assert.NotZero(uploadResult.originalInfo.imageInfo.Width); Assert.NotZero(uploadResult.originalInfo.imageInfo.Height); Assert.NotZero(uploadResult.originalInfo.imageInfo.Quality); Assert.NotNull(uploadResult.processResults); Assert.NotZero(uploadResult.processResults.results.Count); Assert.NotNull(uploadResult.processResults.results[0].ETag); Assert.NotNull(uploadResult.processResults.results[0].Format); Assert.NotNull(uploadResult.processResults.results[0].Key); Assert.NotNull(uploadResult.processResults.results[0].Location); Assert.NotZero(uploadResult.processResults.results[0].Quality); Assert.NotZero(uploadResult.processResults.results[0].Size); Assert.AreEqual(uploadResult.processResults.results[0].CodeStatus, 1); Assert.NotNull(uploadResult.processResults.results[0].QRcodeInfo); Assert.NotNull(uploadResult.processResults.results[0].QRcodeInfo.CodeUrl); Assert.NotNull(uploadResult.processResults.results[0].QRcodeInfo.CodeLocation); Assert.NotNull(uploadResult.processResults.results[0].QRcodeInfo.CodeLocation.Point); Assert.True(uploadResult.processResults.results[0].QRcodeInfo.CodeLocation.Point.Count > 0); QRCodeRecognitionRequest rRequest = new QRCodeRecognitionRequest(bucket, key, 0); QRCodeRecognitionResult rResult = QCloudServer.Instance().cosXml.QRCodeRecognition(rRequest); Assert.IsNotEmpty((rResult.GetResultInfo())); Assert.True(rResult.IsSuccessful()); Assert.NotNull(rResult.recognitionResult); Assert.NotNull(rResult.recognitionResult.QRcodeInfo); Assert.Null(rResult.recognitionResult.ResultImage); Assert.AreEqual(rResult.recognitionResult.CodeStatus, 1); Assert.NotNull(rResult.recognitionResult.QRcodeInfo.CodeLocation); Assert.NotNull(rResult.recognitionResult.QRcodeInfo.CodeUrl); Assert.NotNull(rResult.recognitionResult.QRcodeInfo.CodeLocation.Point); Assert.True(rResult.recognitionResult.QRcodeInfo.CodeLocation.Point.Count > 0); // with cover rRequest = new QRCodeRecognitionRequest(bucket, key, 1); rResult = QCloudServer.Instance().cosXml.QRCodeRecognition(rRequest); Assert.IsNotEmpty((rResult.GetResultInfo())); Assert.True(rResult.IsSuccessful()); Assert.NotNull(rResult.recognitionResult); Assert.NotNull(rResult.recognitionResult.QRcodeInfo); Assert.NotNull(rResult.recognitionResult.ResultImage); Assert.AreEqual(rResult.recognitionResult.CodeStatus, 1); Assert.NotNull(rResult.recognitionResult.QRcodeInfo.CodeLocation); Assert.NotNull(rResult.recognitionResult.QRcodeInfo.CodeUrl); Assert.NotNull(rResult.recognitionResult.QRcodeInfo.CodeLocation.Point); Assert.True(rResult.recognitionResult.QRcodeInfo.CodeLocation.Point.Count > 0); }