二维码 整理 以及豆瓣读…

基于STM32的多模态智能风扇控制系统设计与实现 本文详细介绍了基于STM32单片机的多模态智能风扇控制系统的设计与实现。系统集成了红外遥控、蓝牙手机控制及人体感应等多模态交互方式,通过PWM技术实现无级调速,并设计了安全优先的控制逻辑。文章从硬件选型、核心原理、软件编程到系统调试,提供了完整的实战指南,适合嵌入式开发爱好者学习与实践。 阅读详情

1.二维码项目介绍

1.1Zxing   http://code.google.com/p/zxing/

这个就不用多说了.  应该说所有Android条形码应用的鼻祖吧.  

缺点:之前一个项目就是整合了没修改过的.   最大的确定应该就是不能竖屏吧.  还有就是如果你直接整合官方的源码 会有很多要精简的地方,  不过不说,这个项目写的真的很详细...


1.2.在EOE看到的,刚跑了一下,精简过,竖屏,够省事.所以就用这个开始整合进我的小项目吧.

         http://www.eoeandroid.com/forum.php?mod=viewthread&tid=167006

补充1:刚又试了一下,如果要显示扫描后的图片话,这个还是不理想的.还是由于竖屏的问题.  其实也中和了几家的做法,快拍(不知道是那个版本,我很不喜欢,设计的花花的好像故弄玄虚貌似高端一样,哈哈  我还是比较喜欢QR Droid  都简单.   这两家都是直接调到结果页.不在显示扫描后的图片,倒也省事了.)

补充2:看有网友评论说这个效率会低一些,说实话我是没仔细看,不知道到底影响有多大,其实如果太大,那就换回那个横屏的就是了.


1.3 在线条形码的网站:  http://barcode.tec-it.com/  我随便找的... 你可以作为测试的时候使用.


2.二维码(QRCode)及一维码(条形码)的科普.

(以前只是为了整合应用,需求也只是能扫就行,对,结果我交差也是能用就行....  这也许也是很多程序员最后都成不了大牛的一个原因吧,呵呵,猜测一下.)

刚才在使用豆瓣购书单(Android版),发现它不识别二维码,商品的条形码也不识别.以前真的没注意这个问题,还觉得,ZXing挺牛逼,什么都识别挺好.   (刚才又看了一下,靠,我高看豆瓣的程序了...原来他们也是在扫描后判断是不是ISBN...问题一下变得超级简单了.)

ISBN码是EAN_13的子集. 只是ISBN是以 978或979而已.

这个是ZXing  BarcodeFormat 下支持的种类.

  1.   
  2. public static final BarcodeFormat QR_CODE = new BarcodeFormat("QR_CODE");  
  3.   
  4.   
  5. public static final BarcodeFormat DATA_MATRIX = new BarcodeFormat("DATA_MATRIX");  
  6.   
  7.   
  8. public static final BarcodeFormat UPC_E = new BarcodeFormat("UPC_E");  
  9.   
  10.   
  11. public static final BarcodeFormat UPC_A = new BarcodeFormat("UPC_A");  
  12.   
  13.   
  14. public static final BarcodeFormat EAN_8 = new BarcodeFormat("EAN_8");  
  15.   
  16.   
  17. public static final BarcodeFormat EAN_13 = new BarcodeFormat("EAN_13");  
  18.   
  19.   
  20. public static final BarcodeFormat UPC_EAN_EXTENSION = new BarcodeFormat("UPC_EAN_EXTENSION");  
  21.   
  22.   
  23. public static final BarcodeFormat CODE_128 = new BarcodeFormat("CODE_128");  
  24.   
  25.   
  26. public static final BarcodeFormat CODE_39 = new BarcodeFormat("CODE_39");  
  27.   
  28.   
  29. public static final BarcodeFormat CODE_93 = new BarcodeFormat("CODE_93");  
  30.   
  31.   
  32. public static final BarcodeFormat CODABAR = new BarcodeFormat("CODABAR");  
  33.   
  34.   
  35. public static final BarcodeFormat ITF = new BarcodeFormat("ITF");  
  36.   
  37.   
  38. public static final BarcodeFormat RSS14 = new BarcodeFormat("RSS14");  
  39.   
  40.   
  41. public static final BarcodeFormat PDF417 = new BarcodeFormat("PDF417");  
  42.   
  43.   
  44. public static final BarcodeFormat RSS_EXPANDED = new BarcodeFormat("RSS_EXPANDED");  
  
  public static final BarcodeFormat QR_CODE = new BarcodeFormat("QR_CODE");

  
  public static final BarcodeFormat DATA_MATRIX = new BarcodeFormat("DATA_MATRIX");

  
  public static final BarcodeFormat UPC_E = new BarcodeFormat("UPC_E");

  
  public static final BarcodeFormat UPC_A = new BarcodeFormat("UPC_A");

  
  public static final BarcodeFormat EAN_8 = new BarcodeFormat("EAN_8");

  
  public static final BarcodeFormat EAN_13 = new BarcodeFormat("EAN_13");

  
  public static final BarcodeFormat UPC_EAN_EXTENSION = new BarcodeFormat("UPC_EAN_EXTENSION");

  
  public static final BarcodeFormat CODE_128 = new BarcodeFormat("CODE_128");

  
  public static final BarcodeFormat CODE_39 = new BarcodeFormat("CODE_39");

  
  public static final BarcodeFormat CODE_93 = new BarcodeFormat("CODE_93");

  
  public static final BarcodeFormat CODABAR = new BarcodeFormat("CODABAR");

  
  public static final BarcodeFormat ITF = new BarcodeFormat("ITF");

  
  public static final BarcodeFormat RSS14 = new BarcodeFormat("RSS14");

  
  public static final BarcodeFormat PDF417 = new BarcodeFormat("PDF417");

  
  public static final BarcodeFormat RSS_EXPANDED = new BarcodeFormat("RSS_EXPANDED");

2.1 ISBN条形码.  这个是我的重点嘛 .   ISBN有新旧,这个 我就不在学习啦...

新的国际标准书号在国际上简称“ISBN-13”。而前缀码979将作为ISBN-13备用的新系列号码   

百科里看了半天,应该就是靠这句话识别条形码的区别的吧.    

EAN-13 是要扫描的格式.


3.相关类(看到哪,记哪.能力有限,勿喷,哈哈)

3.1  ViewfinderView  

扫描界面  那个小黑框,扫描的激光线,小黄点点等

3.2  BarcodeFormat 

扫描图案的类型. 二维码/一维码 就像豆瓣读书单一样,我只需要扫描EAN_13就好,不需要做的大而全.

3.3  DecodeThread,DecodeHandler 

解码过程的核心类.

3.4 ParsedResult...  这个是一堆解析类

根据二维码的Result解析相应的结果:ISBN/Tel/Email/Url 等 做人性化的话,就要多区分这些动作就是了.


4.实现方法

4.1 豆瓣书单的实现方式  应该就是直接限制为EAN_13格式,然后当得到扫描结果后

 通过 ISBNResultParser.parse(lastResult) == null 判断是不是ISBN码,如果是跳转到搜索图书页.如果不是, 则提示该条形码不是图书ISBN码.

4.2 一个小小的疑问.  刚才试了一下, com.google.zxing.client.android.DecodeHandler.decode 方法里 添加这段代码.  当解析的结果不是ISBN的时候发送一个解码失败的Message.这样就可以让程序继续运行.排除了扫描的非ISBN的EAN_13提示的那个界面.

 因为你已经禁止扫描其他码,那干脆所有错误都排除就好了.

  1.    if(ISBNResultParser.parse(rawResult) == null){  
  2.         Message message = Message.obtain(activity.getHandler(), R.id.decode_failed);  
  3.         message.sendToTarget();  
  4.     return ;  
  5. }  
     if(ISBNResultParser.parse(rawResult) == null){
          Message message = Message.obtain(activity.getHandler(), R.id.decode_failed);
          message.sendToTarget();
                        return ;
                }

5.通过生成图片和解码图片

5.1 EnCode

  1.     public static Bitmap Encode(String str, BarcodeFormat barcodeFormat, int Width,  
  2.             int Height) throws WriterException {  
  3.         Hashtablenew Hashtable
  4.         // 指定纠错等级   
  5. //      hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);   
  6.         // 指定编码格式   
  7.         hints.put(EncodeHintType.CHARACTER_SET, HTTP.UTF_8);  
  8.         // 生成二维矩阵,编码时指定大小,不要生成了图片以后再进行缩放,这样会模糊导致识别失败   
  9.         BitMatrix matrix = new MultiFormatWriter().encode(str, barcodeFormat,  
  10.                 Width, Height, hints);  
  11.         int width = matrix.getWidth();  
  12.         int height = matrix.getHeight();  
  13.         // 二维矩阵转为一维像素数组,也就是一直横着排了   
  14.         int[] pixels = new int[width * height];      
  15.         for (int y = 0; y < height; y++) {      
  16.             for (int x = 0; x < width; x++) {      
  17.                 if(matrix.get(x, y)){      
  18.                     pixels[y * width + x] = 0xff000000;      
  19.                 }else{  
  20.                  pixels[y * width + x] = 0xffffffff;  
  21.                 }      
  22.                       
  23.             }      
  24.         }    
  25.         Bitmap bitmap = Bitmap.createBitmap(width, height,  
  26.                 Bitmap.Config.ARGB_8888);  
  27.         // 通过像素数组生成bitmap,具体参考api   
  28.         bitmap.setPixels(pixels, 0, width, 0, 0, width, height);  
  29.         return bitmap;  
  30.     }  
   public static Bitmap Encode(String str, BarcodeFormat barcodeFormat, int Width,
                        int Height) throws WriterException {
                Hashtablehints = new Hashtable(); // 指定纠错等级 // hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L); // 指定编码格式 hints.put(EncodeHintType.CHARACTER_SET, HTTP.UTF_8); // 生成二维矩阵,编码时指定大小,不要生成了图片以后再进行缩放,这样会模糊导致识别失败 BitMatrix matrix = new MultiFormatWriter().encode(str, barcodeFormat, Width, Height, hints); int width = matrix.getWidth(); int height = matrix.getHeight(); // 二维矩阵转为一维像素数组,也就是一直横着排了 int[] pixels = new int[width * height]; for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { if(matrix.get(x, y)){ pixels[y * width + x] = 0xff000000; }else{ pixels[y * width + x] = 0xffffffff; } } } Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); // 通过像素数组生成bitmap,具体参考api bitmap.setPixels(pixels, 0, width, 0, 0, width, height); return bitmap; }
5.2 DeCode

RGBLuminanceSource 这个类好像不在ZXing Android项目里.  在 http://code.google.com/p/zxing/source/browse/trunk/androidtest/src/com/google/zxing/client/androidtest/RGBLuminanceSource.java?r=1344 拷贝复制一下就好了.  

  1. public static Result DeCode(Bitmap bitmap){  
  2.     Hashtable hints = new Hashtable();  
  3.     hints.put(EncodeHintType.CHARACTER_SET, HTTP.UTF_8);  
  4.   
  5.        RGBLuminanceSource source = new RGBLuminanceSource(bitmap);  
  6.                 BinaryBitmap bitmap1 = new BinaryBitmap(new HybridBinarizer(source));   
  7.                  QRCodeReader reader2= new QRCodeReader();  
  8.                  Result result;  
  9.                try {  
  10.                  result = reader2.decode(bitmap1,hints);  
  11.                  return result ;  
  12.                 } catch (NotFoundException e) {  
  13.                     e.printStackTrace();  
  14.                     return null ;  
  15.                 } catch (ChecksumException e) {  
  16.                     e.printStackTrace();  
  17.                     return null ;  
  18.                 } catch (FormatException e) {  
  19.                     e.printStackTrace();  
  20.                     return null ;  
  21.                 }  
  22. }  
   public static Result DeCode(Bitmap bitmap){
                Hashtable hints = new Hashtable();
                hints.put(EncodeHintType.CHARACTER_SET, HTTP.UTF_8);

        RGBLuminanceSource source = new RGBLuminanceSource(bitmap);
                 BinaryBitmap bitmap1 = new BinaryBitmap(new HybridBinarizer(source)); 
                  QRCodeReader reader2= new QRCodeReader();
                  Result result;
                try {
                  result = reader2.decode(bitmap1,hints);
                  return result ;
                 } catch (NotFoundException e) {
                     e.printStackTrace();
                     return null ;
                 } catch (ChecksumException e) {
                     e.printStackTrace();
                     return null ;
                 } catch (FormatException e) {
                     e.printStackTrace();
                     return null ;
                 }
        }


5.3 这里又出现了一个国人很悲剧的问题...  编码...  刚才也是在网站看到网友写才发现,有些用的是GBK,我是习惯用UTF-8.  这个应该只能看需要,或者多着编码选择设置了那。  


OK,二维码工作应该就这样结束了.   拼一个简单的二维码应用完全木有问题啦.



 
STM32(HAL库)驱动OLED 通过STM32F103C8T6单片机采用HAL库方式对0.96寸OLED(IIC通讯)屏幕进行驱动。 阅读详情

相关推荐

Microapp 接入vite子应用

MicroApp接入vite版本,干货满满,手把手步骤说明,加上报错说明,赶紧上车!

outsider76557的博客 4660

Android 二维码开发功能实现(四)------基于Zxing实现编码功能(生成二维码,一维码等)

Android 二维码开发功能实现(四)------基于Zxing实现编码功能(生成二维码,一维码等) 前言 关于Google的开源库Zxing,前面也写了几遍文章进行介绍.我们先简单的回顾一下! Android 二维码的扫码功能实现(一) 这篇文章主要介绍了,Zxing是什么?怎么上手?适合没有接触过条码相关开发,0经验的朋友. Android 基于Zxing的扫码功能实现(二) 这篇文章则介...

宇宝守护神(rainyang)的博客 2579

eICU数据库没有ventilation_event表

各位学友大家好,我是环湖医院神经外科的飞时过,很多外院的老师和我问,ventilation_event表的问题,哪怕用ChatGPT也无法正确生成,今天我给大家用SQL做一个拿来就能用的。

环湖数据科学知识共享平台 936

解决Type mismatch: cannot convert from ByteMatrix to BitMatrix

问题背景: 微信支付时,生成二维码使用的是zxing  BitMatrix bitMatrix = new MultiFormatWriter().encode(code_url, BarcodeFormat.QR_CODE, width, height, hints); //Type mismatch: cannot convert from ByteMatrix to BitMat

YangSen_0203的博客 3135

高数 | 【极限与等价无穷小】两个重要极限 & 经典错误 & 什么情况下求极限可以直接带入

一. 第一个重要极限 二. 第二个重要极限 三. 导数定义式 全文见【高等数学】两个重要的极限 - 知乎

"You are worthy! You can do it!" 6万+

【毕设全程指导】基于YOLOv8的包装商品检测与可视化系统(SKU110K实战)

本文介绍了一个基于YOLOv8的包装商品检测与可视化系统毕业设计方案。项目采用SKU110K数据集,通过CSV转TXT格式转换适配YOLO模型训练,包含详细的环境搭建、模型配置和训练流程。系统实现了包装商品的自动化检测,并开发了Tkinter可视化界面进行交互式检测展示。该方案结合产业应用需求与技术深度,既具备实用价值,又能充分展示学生的技术能力,适合作为计算机视觉相关专业的毕业设计选题。整个项目从数据准备到界面开发完整覆盖,帮助学生系统掌握目标检测项目的完整实现流程。

LXY_LOVE36的博客 147

二维码生成图片写入

在这里插入代码片public String code() throws WriterException, IOException { //二维码宽高 int width = 200; int height = 200; Hashtable<EncodeHintType, Object> hints = new Hashtable<>(); hints.put(EncodeHintType.ERROR_CO

weixin_42073002的博客 258

基于STM32设计的水下水质检测装置(微信小程序)(205)

本项目设计了一款基于STM32微控制器为核心的水下水质检测设备,该设备具有高度集成化、智能化的特点,能够实时监测水深、温度、浊度及溶解性总固体(TDS)等关键水质参数,并通过4G网络将数据上传至腾讯云IOT物联网平台,实现远程监控和数据分析。同时,为了便于操作和移动观测,还配套开发了微信小程序,用户可通过微信小程序实时查看并控制设备的各项功能,如调整下潜深度等。

1252

使用Java生成二维码

二维码应该称为二维条码,扫描之后可以获得更多数据 QR码全称为快速响应矩阵码,1994年日本一个公司发明 黑色表示1,白色表示0 3个角落比较像“回”字,叫定位点 容错机制,当7%~30%破损任可以被读取,可以利用这个机制在二维码中放入一些小的logo 最多可以存储7089个数字字符或4296个字母或1800个中文汉字(gbk) 目前在Github上最流行的java实现条形码库

lx__angel的博客 979

TIM 2024 | AD-YOLO:一种结合 Swin Transformer 和注意力机制的实时 YOLO 网络用于机场场景检测

实时获取机场场景信息对于保障机场安全和提升机场运营效率至关重要。然而,机场场景图像中的人员和车辆目标尺寸较小,而且公开的机场数据不足,这使得机场物体检测成为一项颇具挑战的任务,难以同时实现高精度和实时检测。本文提出了一种全新的机场物体检测方法——机场检测器YOLO(AD - YOLO),它融合了改进的你只看一次(YOLO)算法、Swin Transformer和注意力机制的优势,以应对这一挑战。

小白学视觉 315

Istio ICA考试之路---2-2

找到dr部分,这部分可以在mirroring里找也可以和题2-1一样在Traffic Management的dr里复制,内容都一样。此题之后都是在cluster-2上操作,所以就不需要再切换了.之后的几题2.1节就忽略掉了。可以看到,80%的流量被镜像到了dev上,实际考试这步可以忽略。看到ex-ip是192.168.126.220。获取gw,把gateways加入到vs配置中。获取istio-ingress的ex-ip。就获得了这样一个模板文件。查看2个pod的日志。

Q先生 854

二维码的制作

因为项目需要,我封装了三个不同的二维码构建,一个是制作普通的二维码,一个是带logo的,还有一个是带logo和文字的,不废话,直接上代码。 因为项目需要,我封装了三个不同的二维码构建,一个是制作普通的二维码,一个是带logo的,还有一个是带logo和文字的,不废话,直接上代码。 <dependency> <groupId>com.google.zxing<...

m0_37346206的博客 301

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

一维码 和 二维码 生成工具类

import com.google.zxing.*; import com.google.zxing.client.j2se.BufferedImageLuminanceSource; import com.google.zxing.common.BitMatrix; import com.google.zxing.common.HybridBinarizer; import com.googl...

york_饭的博客 599

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Java+zxing生成、解析二维码(避免中文乱码)

1.引入包   &lt;!-- zxing --&gt; &lt;dependency&gt; &lt;groupId&gt;com.google.zxing&lt;/groupId&gt; &lt;artifactId&gt;core&lt;/artifactId&gt; &lt;version&gt;3.2.1&lt;/version&gt; &a

姚懿烜的博客 6729

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Zxing中PRODUCT_FORMATS.add(BarcodeFormat.RSS14);报错

导入ZXing源码后,有时会出现PRODUCT_FORMATS.add(BarcodeFormat.RSS14);报错。 解决方法,将该句改为PRODUCT_FORMATS.add(BarcodeFormat.RSS_14);

gao_chun 4493

Zxing BarcodeFormat.RSS14 出错

使用别人生成的Zxing 的时候可能会出现找不到BarcodeFormat.RSS14 这个变量。直接把BarcodeFormat.RSS14改成BarcodeFormat.RSS_14

lgj452555712的专栏 4422

(zxing.net)一维码EAN 8的简介、实现与解码

一、简介 一维码EAN 8:属于国际标准条码,由8个数字组成,属EAN的简易编码形式(EAN缩短码)。当包装面积小于120平方公分以下无法使用标准码时,可以申请使用缩短码。 依结构的不同,EAN条码可区分为: EAN 13码: 由13个数字组成,为EAN的标准编码型式(EAN标准码)。 EAN 8码: 由8个数字组成,属EAN的简易编码型式(EAN缩短码)。 EAN码的全名为欧洲...

weixin_30505751的博客 724

java生成一维码和二维码

这两天想了解一下二维码是怎样生成的。然后在网上看了很多资料,也有很多源码可以直接用的。我也没有自己写,也是拿着源码进行看和修改的,然后生成自己想要的二维码和一维码,还是很不错的,所以分享一下。 首先第一步,需要导入jar包,我把我用的jar包放上来吧 jar包下载链接: 将包导入好项目之后就可以开始写代码了,先来谈谈一个简单的生成二维码和一维码。想直接使用的可以复制代码之直接可以用。 下面是

程序员爱酸奶 6005

生成一维码与解析一维码

maven引入 <!-- 一维码或二维码编码 --> <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.2.0</version> </dependency&gt...

可乐止饱 624

zxing条形码的生成和解码

[b]转载:[/b][url]http://sjsky.iteye.com/blog/1142177[/url] [code="java"]package michael.zxing; import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; im...

579

识别图书ISBN号并输出查询结果的示例

识别图书ISBN号并输出查询结果的示例 写了个技术原型,通过手机识别图书的ISBN条形码,然后通过豆瓣网的API,输出ISBN号对应的图书信息。 示例很简单,上来是个按钮,点击后,进入zxing的activity,用于扫描图书ISBN号。 使用zxing的扫描功能,这次还出现了点儿问题。我的nexus one摄像头比较脏了,造成对焦后无法识别,或者识别的很慢。吓了我一跳,因为以前没有问题的。 更换了几个版本zxing,问题依旧,擦拭了镜头,问题立刻得到了解决。 nexus one的像素和自

3976

Java 条形码 二维码 的生成与解析

Barcode简介   Barcode是由一组按一定编码规则排列的条,空符号,用以表示一定的字符,数字及符号组成的,一种机器可读的数据表示方式。  Barcode的形式多种多样,按照它们的外观分类:     Linear barcode(一维码):它的信息存储量小,仅能存储一个代号,使用时通过这个代号调取计算机网络中的数据。     Matrix barcode(二维码)。二维码是近几...

aokf71635的博客 888

推荐:根据ISBN号查询图书信息的API - 豆瓣API

找了半天,还是豆瓣的API简单易用~~~示例:https://api.douban.com/v2/book/isbn/:9787111128069结果:{"rating":{"max":10,"numRaters":2576,"average":"9.3","min":0},"subtitle":"","author":["(美)Brian W. Kernighan","(美)Dennis M.

杨江的IT分享专栏 3万+

生成带图片无白边的二维码

二维码 转载请注明出处: 二维码又称二维条码,常见的二维码为QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型。 上面都是百度百科复制的,知道咱们生成的是矩阵二维码就行。 本文是maven工程使用zxing 3.3.0的版本生成可自定义图片的二维码,并且可以...

术舞的专栏 3113

2021SC@SDUSC-Zxing(七):解码关键类详解-Reader

介绍Zxing将图像处理完成后的解码一般流程及针对QR码的特定流程分析

weixin_45883443的博客 2851
上一篇: 条码扫描二维码扫描——ZXing&nbsp;androi…
下一篇: 软件版本相关英文
kf
kf
博客等级 码龄25年 12粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值