毕业设计---用算法实现OCR文字识别(基于java实现的文字识别技术)

Java 实现OCR扫描/识别图片文字 本文详细介绍了如何使用Java实现OCR扫描识别图片文字,并将读取的内容写入txt文本文件。 阅读详情

文末附源码:
识别效果如下图:
在这里插入图片描述

由于是自己实现算法所以识别率不算太高,但是这个相比较一般的模型,识别这么多还是可以的,如果需要做的只是识别率比较高,不关注谁去实现的算法,可以采用第三方的API 百度智能云就很不错,使用方式和前面的百度AI实现人脸识别方式一样,可以参考前面发表的文章。
本文参考如下:
参考原文链接:https://blog.youkuaiyun.com/white__cat/article/details/38461449
对于这个里面其实有些类是用不到的,我经过本地运行以后,现在只要你把项目导入,点击运行,并且将图片路径的文字信息的链接在
在这里插入图片描述
如图所示的位置替换即可,下面的前端页面其实没什么用,后期如果你们有扩展可自行扩展,再次感谢该博主的开源,
对于我调试后的代码,已发布在下载里,读者可关注博主后,私信我qq邮箱链接,博主看到后第一时间回复。

链接:https://download.youkuaiyun.com/download/delete_bug/85431080

SpringBoot集成Tesseract OCR实现图片文字识别完整指南 光学字符识别(OCR)技术能够将图片中的文字转换为可编辑文本,是文档数字化、信息提取等场景的核心基础。其工作原理包括图像预处理、文本区域检测、字符切分与语言模型校正等步骤。基于Java生态的SpringBoot框架与Tesseract OCR引擎相结合,通过Tess4J封装库可以高效地构建本地离线识别服务,无需依赖公有云接口,保证数据安全。从简单的图片上传接口到图像灰度化、缩放等预处理操作,再到并发控制与参数调优,这一方案适合内网部署、信创环境以及毕业设计等应用场景。本文围绕SpringBoot集成Tess 阅读详情

相关推荐

Android+OCR+Node.js 实现报纸拍照识别与自动分类的架构实践

移动端文本识别技术近年来在文档扫描、拍照翻译等场景中应用广泛,其核心链路通常涉及图像采集、光学字符识别(OCR)与后端文本处理三部分。理解这一链路的基本原理,有助于开发者根据业务场景合理选型与分工:客户端负责图像预处理和本地识别,服务端专注文本结构化与内容分发,两者通过轻量接口协作,能够有效降低系统耦合度并提升响应速度。在实际工程中,Tesseract 等开源 OCR 引擎支持中文语言包且可完全离线运行,配合 Node.js 的关键词提取与规则分类,即可实现从原始图像到结构化标签的自动化流程。这类架构适用于

weixin_32047493的博客 227

【项目管理】Java OCR实现图片文字识别

Java OCR实现图片文字识别

李晋江的博客 2万+

Android + Node.js + OCR 实战:报纸阅读器的识别与版面重排

OCR(光学字符识别)技术通过将图片中的文字转化为带坐标的文本数据,成为报纸档案数字化的核心环节。其原理在于识别文本块的位置、大小与置信度,结合版面分析算法还原阅读顺序。在实际工程中,OCR 的技术价值体现在将扫描件、翻拍图等非结构化图像转换为可检索的结构化信息,广泛应用于历史报刊、书籍、票据等场景的数字化检索系统。而在报纸阅读器的开发实践中,单纯依靠 Android 端难以应对高分辨率图像的中文密集排版,更稳妥的架构是采用 Android 负责采集与展示,Node.js 作为服务端调度 OCR 引擎,完成

weixin_42599908的博客 326

java实现OCR图文识别Tess4j,高准确率高效率java调用OCR文字识别技术,完整可运行

java实现OCR图文识别Tess4j,高准确率高效率,java调用OCR文字识别技术,完整可运行

inovice的博客 1万+

OpenCV印章识别实战:不用OCR的红章检测方案

印章识别本质上是图像中高对比度封闭图形的定位问题,而非传统OCR的文字识别任务。其核心原理在于利用HSV色彩空间分离红色通道,结合形态学处理与轮廓分析实现鲁棒判别,技术价值体现在轻量、可解释、免训练、CPU实时推理。典型应用场景包括合同验真、公文归档、成绩单核验等文档自动化流程。本方案聚焦OpenCV视觉判别方法,规避YOLO小目标检测失效与OCR对非文字结构的误判,特别适合教学实践与轻量部署——涵盖HSV阈值调优、形态学参数设计、最小外接矩形拟合等关键环节。

weixin_29061821的博客 314

SpringBoot集成OCR:从图片识别到文本提取的完整实践指南

OCR(光学字符识别)技术能够将图片中的文字转化为可编辑、可检索的文本,是文档数字化、信息提取的重要基石。在工程实践中,OCR的价值不仅在于算法本身,更在于如何将识别能力无缝集成到后端服务中。SpringBoot作为主流Java框架,提供了便捷的Web开发能力,通过集成Tesseract等离线引擎或百度OCR等在线API,开发者可以快速构建出健壮的图片文本提取服务。本文从OCR技术原理出发,对比离线与在线识别路线的适用场景,讲解图片上传、Base64编码、RestTemplate调用及结果解析的关键细节,并

weixin_33507732的博客 231

Java代码实现OCR图像识别

【代码】OCR图像识别。

寒星孤月的博客 1005

基于PaddleOCR封装离线多语言OCR SDK:从原理到工程实践

OCR(光学字符识别)技术是实现图像文字自动提取的核心,其原理是通过深度学习模型对图像中的文本区域进行检测与识别。这项技术的核心价值在于将非结构化的图像信息转化为可编辑、可搜索的文本数据,极大地提升了信息处理效率。在数据安全与网络稳定性要求高的场景下,离线OCR解决方案展现出独特优势。本文聚焦于如何将开源的PaddleOCR框架工程化为一个即拿即用的离线多语言SDK,深入探讨了其架构设计、多语言支持机制与性能优化策略,为开发者在企业级应用、边缘计算等隐私敏感场景下,提供了一套高性能、易集成的“瑞士军刀”式工

weixin_34090562的博客 330

开源免费 + 98% 手写识别率!旗讯数字 OCR:开发者必备的文字识别解决方案

【摘要】旗讯数字OCR识别是一款开源免费的优质文字识别工具,针对开发者痛点提供三大核心优势:1)MIT开源协议支持二次开发与本地部署,降低企业数据安全风险;2)结构化输出功能可直接生成JSON/XML等格式,减少70%数据处理工作量;3)采用复合深度学习模型实现98%手写识别率。支持Python/Java等多语言调用,3步即可完成集成,适用于医疗处方识别、金融单据处理等企业级场景,以及个人笔记管理等开发需求。其开源特性与高精度显著降低技术成本,GitHub已更新至v2.1版本,新增表格识别等实用功能。(14

qxsz_yyh的博客 1510

Android图像处理毕业设计完整工程包:灰度化、边缘检测、滤镜等全功能可运行源码

提供一套开箱即用的Android图像处理毕业设计项目,支持真机和模拟器直接运行。内置灰度化、二值化、Sobel/Canny边缘检测、高斯模糊、锐化、怀旧/黑白/浮雕等滤镜效果,所有功能模块均已验证通过。基于Android Studio标准结构开发,包含app模块、Gradle配置、ProGuard混淆规则、适配Android 5.0至12.0的兼容性处理,以及详细README操作指南。代码采用Java编写,逻辑分层清晰,关键步骤配有中文注释,方便计算机、人工智能、电子信息、自动化等专业学生快速理解与复用。可

bert9linguist的博客 196

识别度较高的ocr文字识别软件源码

此为基于java技术的OCR文字识别软件源码,识别精准度较高。可直接使用,也可抽取其核心代码与其他java项目结合使用。

基于javaweb和mysql的ssm车牌识别停车场管理系统(java+ssm+mysql+jsp+ocr)

基于javaweb和mysql的ssm车牌识别停车场管理系统(java+ssm+mysql+jsp+ocr)基于javaweb的SSM车牌识别停车场管理系统(java+ssm+mysql+jsp+OCR)eclipse/idea/myeclipse/sts等均可配置运行。功能:车牌监控识别(进场)、车辆管理、停车管理、缴费管理等。课程设计,大作业,毕业设计,项目练习,学习演示等。本项目使用的是腾讯云的文字识别(OCR)服务。

毕业javaweb,一直在线,欢迎私信 258

HC-05蓝牙模块AT指令配置避坑全记录:从配对失败到稳定主从通信

本文详细记录了HC-05蓝牙模块AT指令配置的全过程,从基础认知到主从通信的稳定实现。涵盖了进入AT模式的方法、关键AT指令详解、主从配对流程及常见故障排除,帮助开发者快速掌握蓝牙串口模块的配置技巧,避免常见配对失败问题。

weixin_42632434的博客 414

基于深度学习的文字识别系统(源码+文档)

文章摘要:本文介绍了一个基于深度学习的文字识别系统项目,包含源码和技术文档。项目采用图像识别算法(如边缘检测、轮廓提取等)实现文字定位与识别功能,支持图像预处理、文字分割等操作。提供后端和前端列表代码示例,适合计算机专业学生进行毕业设计。项目需通过文末联系方式获取源码,适用于文档数字化、票据识别等应用场景。作者为10年经验软件工程师,可提供技术咨询和毕设指导服务。

毕业设计源码分享 530

注册电气工程师详细教材

注册电气工程师详细教材

qq_40844444的博客 4245

百度地图小区边界爬取

百度地图 小区边界爬取 完整项目地址-github 数据源:百度地图api 项目结构 RESIDENTIALAREABOUNDARY │ ResidentialAreaBoundaryControl.py 主函数 │ ResidentialAreaBoundaryFunc.py 方法库 │ ├─Auxiliary │ crawelFunc.p...

fulin9452的博客 6399

【2026年精选毕业设计:校园二手教材循环平台(含论文+源码+PPT+开题报告+任务书+答辩讲解)】

本文介绍2026年高热度毕业设计项目——校园二手教材循环平台,基于Vue3+Spring Boot构建,支持OCR扫码识别教材、课程表智能推荐、AI语音问答、碳减排可视化等核心功能。系统采用校园封闭生态设计,实现教材发布、搜索、线下交易全流程闭环。项目包含完整论文、源码、PPT、开题报告、任务书及答辩材料,适合计算机类专业学生高质量完成毕业设计。

qq_46179813的博客 665

STM32CubeMX HAL实战:JY901S串口数据解析与姿态解算

本文详细介绍了如何使用STM32CubeMX HAL库实现JY901S六轴姿态传感器的串口数据解析与姿态解算。从基础硬件连接到USART3配置,再到数据接收状态机实现和传感器校准方法,最后深入讲解互补滤波与Mahony滤波算法在姿态解算中的应用。通过实战代码演示,帮助开发者快速掌握无人机、机器人等项目中关键姿态数据处理技术。

weixin_28703489的博客 432

[今年毕业设计]最新最全最有创意的基于C#开发的计算机专业毕设选题精选推荐汇总建议收藏!!

[今年毕业设计]最新最全最有创意的基于C#开发的计算机专业毕设选题精选推荐汇总建议收藏!!。👇🏻 精彩专栏 推荐订阅👇🏻计算机毕业设计精品项目案例-500套基于Java SpringBoot的微信校园二手交易小程序平台开发系列(一)基于校园二手物品交易小程序系统设计与实现系列(二)基于云开发微信小程序二手闲置商城校园跳蚤物品交换系统设计与实现(三)微信小程序商城系统源码优秀毕业设计作品系统基于毕业设计的图书馆管理系统设计与实现。

vxLGY178888的博客 1297

PCL点云八叉树体素中心下采样,体素包含点索引提取

基于PCL octree实现点云八叉树计算,支持提取体素中心点进行点云下采样;根据任一点坐标,可以得到其在八叉树中的位置,输出对应体素内其余点的坐标或者索引

qq_48694523的博客 462

Sigrity System Explorer Transient Analysis模式进行瞬态仿真分析操作指导-单端信号

Sigrity System Explorer Transient Analysis模式可以用于瞬态仿真分析,通过搭建简易拓扑用于前仿真分析通道的时域性能,下面搭建一个简易的单端拓扑进行说明,以下图为例,准备好发送接收端的IBIS模型, (ibis_se.ibs,本例发送接收端都使用相同的IBIS模型),以及传输线的S参数模型(welement_se.sp)最上方的图形界面是传输线的模型,本例是一个上下都有参考平面的带状线,右侧的梯形是蚀刻角度,根据W1和W2以及铜厚来确定。

weixin_54787054的博客 414

大数据毕业设计 python手写文字识别系统 PyTorch+CNN+PyQt5源码 汉字识别OpenCV预处理✅

大数据毕业设计 python手写文字识别系统 PyTorch+CNN+PyQt5源码 汉字识别OpenCV预处理✅

q_3375686806的博客 1401

uni-app - 在纯 JS 文件中调用自定义弹框组件 / 封装全局 API 调用弹框组件(解决小程序、APP 无法使用 document.body.appendChild 插入组件节点)适配全端

uni-app-在纯JS文件中调用自定义弹框组件/封装全局API调用弹框组件(解决小程序、APP无法使用document.body.appendChild插入组件节点)适配全端,uni-appappendChild怎么向小程序中插入节点,如何开发类似uni.showModal全局组件。h5端可以通过document.body.appendChild挂载,请问app跟微信小程序怎么弄,请问uniapp如何封装全局api调用弹窗组件?uniapp怎么设置所有页面共用的组件Uni

🏆 前端领域优质创作者 1万+

计算机毕设选题推荐:基于扫描识别的入门级项目实战与避坑指南

最近在帮学弟学妹们看毕设选题,发现一个挺普遍的现象:很多同学对“扫描识别”这个方向很感兴趣,觉得它既实用又“高大上”,但真到动手时,却往往卡在第一步——不知道从何入手,或者选了一个远超自己能力范围、需要大量标注数据和算力的复杂课题,结果中途夭折。其实,对于本科生来说,一个成功的毕设项目,关键在于“完整落地”和“清晰展示”,而不是追求前沿技术的堆砌。今天,我就结合自己的经验,聊聊如何选择一个合适的扫描识别类毕设,并一步步把它做出来,避开那些常见的“坑”。

2600_94959817的博客 40

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

基于PaddleOCR的中文文档数字化处理系统设计与优化

OCR(光学字符识别)技术是文档数字化的核心技术,通过深度学习模型将图像文字转换为可编辑文本。其核心原理是CNN+BiLSTM+CTC的神经网络架构,能有效处理不同版面的文字识别。在工程实践中,OCR技术显著提升了金融、医疗等行业的文档管理效率,特别在中文场景下需要针对字体多样性、版面复杂性进行专项优化。本文介绍的基于PaddleOCR的系统,通过训练数据增强、版面分析改进等技术创新,实现了98.7%的中文印刷体识别准确率,并采用异步处理、GPU加速等工程优化手段,使系统并发能力提升4倍。该系统已成功应用于

weixin_33726313的博客 730

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

上一篇: 基于spring-security的权限认证框架
下一篇: 在线批量身份证识别系统
凌晨里的无聊人
博客等级 码龄8年 2320粉丝 206原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凌晨里的无聊人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值