[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"info-list-19054":3,"hot-list-29":24},{"info":4,"next":18,"pre":21},{"article_title":5,"type_id":6,"article_image":7,"article_content":8,"read_num":9,"create_time":10,"update_time":10,"article_author":11,"tags":12,"seo_title":5,"keyword":13,"desc":14,"style_type":15,"article_type":12,"is_video":16,"video_url":12,"video_img":12,"update_time_str":17},"C#读取二维码内容，原来不用装SDK也能实现？",29,"https:\u002F\u002Fhs1.bmwas.cn\u002Farticle\u002Fa844e9bc16b0c3090dd970f819b44f07.jpg","\u003Cdiv data-page-id=\"Mnlyd4Z2EoP0Amx7JpKcHWSGnh5\" data-lark-html-role=\"root\" data-docx-has-block-data=\"false\">\u003Cp>\u003Cspan style=\"color: rgb(0, 0, 0); font-size: 14px; font-weight: normal;\">C#开发中读取二维码,很多人第一反应是安装ZXing等SDK,但这些库体积大、依赖多,小项目用起来负担重。通过调用系统原生接口或开源轻量框架,配合基础的图像处理逻辑,完全可以实现二维码读取功能。本文介绍两种无需安装SDK的实现思路,同时对比不同方案的适用场景,帮助开发者根据项目需求做出合理选择。\u003C\u002Fspan>\u003C\u002Fp>\u003Ch2 class=\"heading-2 ace-line old-record-id-doxcnmwftGEW6OrU14Ip0yynnoc\">1.1、传统SDK方案的局限与轻量化需求\u003C\u002Fh2>\u003Cdiv class=\"ace-line ace-line old-record-id-doxcnwubc81Zr4LM986dmCm8L8c\">ZXing.Net这类库功能强大,支持多种码制、容错率高、文档完善,但实际使用中会遇到几个问题：安装包体积膨胀（一个简单的扫码工具可能因为依赖库变成50MB+）,部署时需要处理.NET Framework版本兼容,有些企业内网环境对第三方组件有严格审批流程。如果项目涉及识别带Logo、渐变色背景的复杂二维码,要处理高并发扫码场景,或者需要同时支持多种码制,这些场景下必须使用成熟SDK。但对于只需要简单读码功能的项目,轻量化方案更加合适。\u003C\u002Fdiv>\u003Ch2 class=\"heading-2 ace-line old-record-id-doxcnDzLLiJIuxREusS7gO3KWug\">1.2、两种轻量化实现方案对比\u003C\u002Fh2>\u003Cdiv class=\"ace-line ace-line old-record-id-doxcnk2O1E8qI77U7jiN5DLvz8f\">方案一是摄像头实时识别,适合需要用户手持设备扫码的场景。通过AForge.NET捕获摄像头画面,用System.Drawing提取图像中的二维码定位点,按照QR Code标准解析数据区的黑白格子。整个流程大概200行代码能搞定,但对环境光线要求较高,需要确保镜头干净、调整合适距离、避免强光直射。方案二是静态图片解析,直接用Bitmap类读取像素数据,适合批量处理或后台任务。这种方式处理速度快、不受光线影响,但对图片质量有要求。还有一种折中选择是调用在线解码API,零依赖、零维护,识别准确率有保障,适合对实时性要求不高的场景。\u003C\u002Fdiv>\u003Ch2 class=\"heading-2 ace-line old-record-id-doxcnRmICoblk20YyIHcDrx3eIh\">1.3、根据项目需求选择合适方案\u003C\u002Fh2>\u003Cul start=\"1\" class=\"list-bullet1\">\u003Cli class=\"ace-line ace-line old-record-id-doxcnVj36AtSUeb2oddJch2llLe\" data-list=\"bullet\" style=\"list-style-type: disc; list-style-position: outside; margin-left: 0px; padding-left: 0px;\">轻量级应用开发者：如果做个人工具、内部小系统,无SDK方案或在线解码服务都是不错的选择,前者适合有算法基础的开发者,后者适合追求快速上线的场景\u003C\u002Fli>\u003Cli class=\"ace-line ace-line old-record-id-doxcnScEDDlwwPPQIa7W7gKTCch\" data-list=\"bullet\" style=\"list-style-type: disc; list-style-position: outside; margin-left: 0px; padding-left: 0px;\">企业级项目负责人：对于需要长期维护的商业项目,建议优先考虑成熟SDK,虽然初期引入成本稍高,但长远来看能节省大量排查问题的时间\u003C\u002Fli>\u003Cli class=\"ace-line ace-line old-record-id-doxcn85DImZbY2GXfP8kG6iTftd\" data-list=\"bullet\" style=\"list-style-type: disc; list-style-position: outside; margin-left: 0px; padding-left: 0px;\">学习和研究目的：如果是为了理解二维码原理或提升算法能力,强烈建议自己实现一遍完整流程,从图像处理到数据解码,每个环节都能学到实用的知识\u003C\u002Fli>\u003C\u002Ful>\u003C\u002Fdiv>\u003Cspan data-lark-record-data=\"{&quot;isCut&quot;:false,&quot;rootId&quot;:&quot;Mnlyd4Z2EoP0Amx7JpKcHWSGnh5&quot;,&quot;parentId&quot;:&quot;Mnlyd4Z2EoP0Amx7JpKcHWSGnh5&quot;,&quot;blockIds&quot;:[2,3,4,5,6,7,8,9,10,11],&quot;recordIds&quot;:[&quot;doxcnOOHvzdpUZEbwWv8BupVBXb&quot;,&quot;doxcnlu4rzrghHWtTqXtzB2a3Ff&quot;,&quot;doxcnmwftGEW6OrU14Ip0yynnoc&quot;,&quot;doxcnwubc81Zr4LM986dmCm8L8c&quot;,&quot;doxcnDzLLiJIuxREusS7gO3KWug&quot;,&quot;doxcnk2O1E8qI77U7jiN5DLvz8f&quot;,&quot;doxcnRmICoblk20YyIHcDrx3eIh&quot;,&quot;doxcnVj36AtSUeb2oddJch2llLe&quot;,&quot;doxcnScEDDlwwPPQIa7W7gKTCch&quot;,&quot;doxcn85DImZbY2GXfP8kG6iTftd&quot;],&quot;recordMap&quot;:{&quot;doxcnOOHvzdpUZEbwWv8BupVBXb&quot;:{&quot;id&quot;:&quot;doxcnOOHvzdpUZEbwWv8BupVBXb&quot;,&quot;snapshot&quot;:{&quot;type&quot;:&quot;heading1&quot;,&quot;parent_id&quot;:&quot;Mnlyd4Z2EoP0Amx7JpKcHWSGnh5&quot;,&quot;comments&quot;:null,&quot;revisions&quot;:null,&quot;locked&quot;:false,&quot;hidden&quot;:false,&quot;author&quot;:&quot;7587678050121157823&quot;,&quot;children&quot;:[],&quot;text&quot;:{&quot;apool&quot;:{&quot;nextNum&quot;:1,&quot;numToAttrib&quot;:{&quot;0&quot;:[&quot;author&quot;,&quot;7587678050121157823&quot;]}},&quot;initialAttributedTexts&quot;:{&quot;attribs&quot;:{&quot;0&quot;:&quot;*0+f&quot;},&quot;text&quot;:{&quot;0&quot;:&quot;C#读取二维码内容的轻量化方案&quot;}}},&quot;align&quot;:&quot;&quot;}},&quot;doxcnlu4rzrghHWtTqXtzB2a3Ff&quot;:{&quot;id&quot;:&quot;doxcnlu4rzrghHWtTqXtzB2a3Ff&quot;,&quot;snapshot&quot;:{&quot;type&quot;:&quot;text&quot;,&quot;parent_id&quot;:&quot;Mnlyd4Z2EoP0Amx7JpKcHWSGnh5&quot;,&quot;comments&quot;:null,&quot;revisions&quot;:null,&quot;locked&quot;:false,&quot;hidden&quot;:false,&quot;author&quot;:&quot;7587678050121157823&quot;,&quot;children&quot;:[],&quot;text&quot;:{&quot;apool&quot;:{&quot;numToAttrib&quot;:{&quot;0&quot;:[&quot;author&quot;,&quot;7587678050121157823&quot;],&quot;1&quot;:[&quot;author&quot;,&quot;6978719968066027548&quot;]},&quot;nextNum&quot;:2,&quot;attribToNum&quot;:{&quot;author,7587678050121157823&quot;:0,&quot;author,6978719968066027548&quot;:1}},&quot;initialAttributedTexts&quot;:{&quot;text&quot;:{&quot;0&quot;:&quot;C#开发中读取二维码,很多人第一反应是安装ZXing等SDK,但这些库体积大、依赖多,小项目用起来负担重。通过调用系统原生接口或开源轻量框架,配合基础的图像处理逻辑,完全可以实现二维码读取功能。本文介绍两种无需安装SDK的实现思路,同时对比不同方案的适用场景,帮助开发者根据项目需求做出合理选择。&quot;},&quot;attribs&quot;:{&quot;0&quot;:&quot;*0+a*1+1*0+j*1+1*0+b*1+1*0+r*1+1*0+b*1+1*0+w*1+1*0+d*1+1*0+i&quot;},&quot;rows&quot;:{},&quot;cols&quot;:{}}},&quot;align&quot;:&quot;&quot;}},&quot;doxcnmwftGEW6OrU14Ip0yynnoc&quot;:{&quot;id&quot;:&quot;doxcnmwftGEW6OrU14Ip0yynnoc&quot;,&quot;snapshot&quot;:{&quot;type&quot;:&quot;heading2&quot;,&quot;parent_id&quot;:&quot;Mnlyd4Z2EoP0Amx7JpKcHWSGnh5&quot;,&quot;comments&quot;:null,&quot;revisions&quot;:null,&quot;locked&quot;:false,&quot;hidden&quot;:false,&quot;author&quot;:&quot;7587678050121157823&quot;,&quot;children&quot;:[],&quot;text&quot;:{&quot;apool&quot;:{&quot;nextNum&quot;:1,&quot;numToAttrib&quot;:{&quot;0&quot;:[&quot;author&quot;,&quot;7587678050121157823&quot;]}},&quot;initialAttributedTexts&quot;:{&quot;attribs&quot;:{&quot;0&quot;:&quot;*0+k&quot;},&quot;text&quot;:{&quot;0&quot;:&quot;1.1、传统SDK方案的局限与轻量化需求&quot;}}},&quot;align&quot;:&quot;&quot;}},&quot;doxcnwubc81Zr4LM986dmCm8L8c&quot;:{&quot;id&quot;:&quot;doxcnwubc81Zr4LM986dmCm8L8c&quot;,&quot;snapshot&quot;:{&quot;type&quot;:&quot;text&quot;,&quot;parent_id&quot;:&quot;Mnlyd4Z2EoP0Amx7JpKcHWSGnh5&quot;,&quot;comments&quot;:null,&quot;revisions&quot;:null,&quot;locked&quot;:false,&quot;hidden&quot;:false,&quot;author&quot;:&quot;7587678050121157823&quot;,&quot;children&quot;:[],&quot;text&quot;:{&quot;apool&quot;:{&quot;numToAttrib&quot;:{&quot;0&quot;:[&quot;author&quot;,&quot;7587678050121157823&quot;],&quot;1&quot;:[&quot;author&quot;,&quot;6978719968066027548&quot;]},&quot;nextNum&quot;:2,&quot;attribToNum&quot;:{&quot;author,7587678050121157823&quot;:0,&quot;author,6978719968066027548&quot;:1}},&quot;initialAttributedTexts&quot;:{&quot;text&quot;:{&quot;0&quot;:&quot;ZXing.Net这类库功能强大,支持多种码制、容错率高、文档完善,但实际使用中会遇到几个问题：安装包体积膨胀（一个简单的扫码工具可能因为依赖库变成50MB+）,部署时需要处理.NET Framework版本兼容,有些企业内网环境对第三方组件有严格审批流程。如果项目涉及识别带Logo、渐变色背景的复杂二维码,要处理高并发扫码场景,或者需要同时支持多种码制,这些场景下必须使用成熟SDK。但对于只需要简单读码功能的项目,轻量化方案更加合适。&quot;},&quot;attribs&quot;:{&quot;0&quot;:&quot;*0+g*1+1*0+g*1+1*0+1a*1+1*0+p*1+1*0+1b*1+1*0+a*1+1*0+c*1+1*0+u*1+1*0+a&quot;},&quot;rows&quot;:{},&quot;cols&quot;:{}}},&quot;align&quot;:&quot;&quot;}},&quot;doxcnDzLLiJIuxREusS7gO3KWug&quot;:{&quot;id&quot;:&quot;doxcnDzLLiJIuxREusS7gO3KWug&quot;,&quot;snapshot&quot;:{&quot;type&quot;:&quot;heading2&quot;,&quot;parent_id&quot;:&quot;Mnlyd4Z2EoP0Amx7JpKcHWSGnh5&quot;,&quot;comments&quot;:null,&quot;revisions&quot;:null,&quot;locked&quot;:false,&quot;hidden&quot;:false,&quot;author&quot;:&quot;7587678050121157823&quot;,&quot;children&quot;:[],&quot;text&quot;:{&quot;apool&quot;:{&quot;nextNum&quot;:1,&quot;numToAttrib&quot;:{&quot;0&quot;:[&quot;author&quot;,&quot;7587678050121157823&quot;]}},&quot;initialAttributedTexts&quot;:{&quot;attribs&quot;:{&quot;0&quot;:&quot;*0+f&quot;},&quot;text&quot;:{&quot;0&quot;:&quot;1.2、两种轻量化实现方案对比&quot;}}},&quot;align&quot;:&quot;&quot;}},&quot;doxcnk2O1E8qI77U7jiN5DLvz8f&quot;:{&quot;id&quot;:&quot;doxcnk2O1E8qI77U7jiN5DLvz8f&quot;,&quot;snapshot&quot;:{&quot;type&quot;:&quot;text&quot;,&quot;parent_id&quot;:&quot;Mnlyd4Z2EoP0Amx7JpKcHWSGnh5&quot;,&quot;comments&quot;:null,&quot;revisions&quot;:null,&quot;locked&quot;:false,&quot;hidden&quot;:false,&quot;author&quot;:&quot;7587678050121157823&quot;,&quot;children&quot;:[],&quot;text&quot;:{&quot;apool&quot;:{&quot;numToAttrib&quot;:{&quot;0&quot;:[&quot;author&quot;,&quot;7587678050121157823&quot;],&quot;1&quot;:[&quot;author&quot;,&quot;6978719968066027548&quot;]},&quot;nextNum&quot;:2,&quot;attribToNum&quot;:{&quot;author,7587678050121157823&quot;:0,&quot;author,6978719968066027548&quot;:1}},&quot;initialAttributedTexts&quot;:{&quot;text&quot;:{&quot;0&quot;:&quot;方案一是摄像头实时识别,适合需要用户手持设备扫码的场景。通过AForge.NET捕获摄像头画面,用System.Drawing提取图像中的二维码定位点,按照QR Code标准解析数据区的黑白格子。整个流程大概200行代码能搞定,但对环境光线要求较高,需要确保镜头干净、调整合适距离、避免强光直射。方案二是静态图片解析,直接用Bitmap类读取像素数据,适合批量处理或后台任务。这种方式处理速度快、不受光线影响,但对图片质量有要求。还有一种折中选择是调用在线解码API,零依赖、零维护,识别准确率有保障,适合对实时性要求不高的场景。&quot;},&quot;attribs&quot;:{&quot;0&quot;:&quot;*0+b*1+1*0+z*1+1*0+r*1+1*0+11*1+1*0+a*1+1*0+x*1+1*0+g*1+1*0+s*1+1*0+s*1+1*0+7*1+1*0+8*1+1*0+e&quot;},&quot;rows&quot;:{},&quot;cols&quot;:{}}},&quot;align&quot;:&quot;&quot;}},&quot;doxcnRmICoblk20YyIHcDrx3eIh&quot;:{&quot;id&quot;:&quot;doxcnRmICoblk20YyIHcDrx3eIh&quot;,&quot;snapshot&quot;:{&quot;type&quot;:&quot;heading2&quot;,&quot;parent_id&quot;:&quot;Mnlyd4Z2EoP0Amx7JpKcHWSGnh5&quot;,&quot;comments&quot;:null,&quot;revisions&quot;:null,&quot;locked&quot;:false,&quot;hidden&quot;:false,&quot;author&quot;:&quot;7587678050121157823&quot;,&quot;children&quot;:[],&quot;text&quot;:{&quot;apool&quot;:{&quot;nextNum&quot;:1,&quot;numToAttrib&quot;:{&quot;0&quot;:[&quot;author&quot;,&quot;7587678050121157823&quot;]}},&quot;initialAttributedTexts&quot;:{&quot;attribs&quot;:{&quot;0&quot;:&quot;*0+g&quot;},&quot;text&quot;:{&quot;0&quot;:&quot;1.3、根据项目需求选择合适方案&quot;}}},&quot;align&quot;:&quot;&quot;}},&quot;doxcnVj36AtSUeb2oddJch2llLe&quot;:{&quot;id&quot;:&quot;doxcnVj36AtSUeb2oddJch2llLe&quot;,&quot;snapshot&quot;:{&quot;type&quot;:&quot;bullet&quot;,&quot;parent_id&quot;:&quot;Mnlyd4Z2EoP0Amx7JpKcHWSGnh5&quot;,&quot;comments&quot;:null,&quot;revisions&quot;:null,&quot;locked&quot;:false,&quot;hidden&quot;:false,&quot;author&quot;:&quot;7587678050121157823&quot;,&quot;children&quot;:[],&quot;text&quot;:{&quot;apool&quot;:{&quot;numToAttrib&quot;:{&quot;0&quot;:[&quot;author&quot;,&quot;7587678050121157823&quot;],&quot;1&quot;:[&quot;author&quot;,&quot;6978719968066027548&quot;]},&quot;nextNum&quot;:2,&quot;attribToNum&quot;:{&quot;author,7587678050121157823&quot;:0,&quot;author,6978719968066027548&quot;:1}},&quot;initialAttributedTexts&quot;:{&quot;text&quot;:{&quot;0&quot;:&quot;轻量级应用开发者：如果做个人工具、内部小系统,无SDK方案或在线解码服务都是不错的选择,前者适合有算法基础的开发者,后者适合追求快速上线的场景&quot;},&quot;attribs&quot;:{&quot;0&quot;:&quot;*0+m*1+1*0+k*1+1*0+d*1+1*0+d&quot;},&quot;rows&quot;:{},&quot;cols&quot;:{}}},&quot;align&quot;:&quot;&quot;}},&quot;doxcnScEDDlwwPPQIa7W7gKTCch&quot;:{&quot;id&quot;:&quot;doxcnScEDDlwwPPQIa7W7gKTCch&quot;,&quot;snapshot&quot;:{&quot;type&quot;:&quot;bullet&quot;,&quot;parent_id&quot;:&quot;Mnlyd4Z2EoP0Amx7JpKcHWSGnh5&quot;,&quot;comments&quot;:null,&quot;revisions&quot;:null,&quot;locked&quot;:false,&quot;hidden&quot;:false,&quot;author&quot;:&quot;7587678050121157823&quot;,&quot;children&quot;:[],&quot;text&quot;:{&quot;apool&quot;:{&quot;numToAttrib&quot;:{&quot;0&quot;:[&quot;author&quot;,&quot;7587678050121157823&quot;],&quot;1&quot;:[&quot;author&quot;,&quot;6978719968066027548&quot;]},&quot;nextNum&quot;:2,&quot;attribToNum&quot;:{&quot;author,7587678050121157823&quot;:0,&quot;author,6978719968066027548&quot;:1}},&quot;initialAttributedTexts&quot;:{&quot;text&quot;:{&quot;0&quot;:&quot;企业级项目负责人：对于需要长期维护的商业项目,建议优先考虑成熟SDK,虽然初期引入成本稍高,但长远来看能节省大量排查问题的时间&quot;},&quot;attribs&quot;:{&quot;0&quot;:&quot;*0+m*1+1*0+b*1+1*0+a*1+1*0+h&quot;},&quot;rows&quot;:{},&quot;cols&quot;:{}}},&quot;align&quot;:&quot;&quot;}},&quot;doxcn85DImZbY2GXfP8kG6iTftd&quot;:{&quot;id&quot;:&quot;doxcn85DImZbY2GXfP8kG6iTftd&quot;,&quot;snapshot&quot;:{&quot;type&quot;:&quot;bullet&quot;,&quot;parent_id&quot;:&quot;Mnlyd4Z2EoP0Amx7JpKcHWSGnh5&quot;,&quot;comments&quot;:null,&quot;revisions&quot;:null,&quot;locked&quot;:false,&quot;hidden&quot;:false,&quot;author&quot;:&quot;7587678050121157823&quot;,&quot;children&quot;:[],&quot;text&quot;:{&quot;apool&quot;:{&quot;numToAttrib&quot;:{&quot;0&quot;:[&quot;author&quot;,&quot;7587678050121157823&quot;],&quot;1&quot;:[&quot;author&quot;,&quot;6978719968066027548&quot;]},&quot;nextNum&quot;:2,&quot;attribToNum&quot;:{&quot;author,7587678050121157823&quot;:0,&quot;author,6978719968066027548&quot;:1}},&quot;initialAttributedTexts&quot;:{&quot;text&quot;:{&quot;0&quot;:&quot;学习和研究目的：如果是为了理解二维码原理或提升算法能力,强烈建议自己实现一遍完整流程,从图像处理到数据解码,每个环节都能学到实用的知识&quot;},&quot;attribs&quot;:{&quot;0&quot;:&quot;*0+r*1+1*0+e*1+1*0+a*1+1*0+d&quot;},&quot;rows&quot;:{},&quot;cols&quot;:{}}},&quot;align&quot;:&quot;&quot;}},&quot;Mnlyd4Z2EoP0Amx7JpKcHWSGnh5&quot;:{&quot;id&quot;:&quot;Mnlyd4Z2EoP0Amx7JpKcHWSGnh5&quot;,&quot;snapshot&quot;:{&quot;type&quot;:&quot;page&quot;,&quot;parent_id&quot;:&quot;&quot;,&quot;comments&quot;:null,&quot;revisions&quot;:null,&quot;locked&quot;:false,&quot;hidden&quot;:false,&quot;author&quot;:&quot;7587678050121157823&quot;,&quot;children&quot;:[&quot;doxcnOOHvzdpUZEbwWv8BupVBXb&quot;,&quot;doxcnlu4rzrghHWtTqXtzB2a3Ff&quot;,&quot;doxcnmwftGEW6OrU14Ip0yynnoc&quot;,&quot;doxcnwubc81Zr4LM986dmCm8L8c&quot;,&quot;doxcnDzLLiJIuxREusS7gO3KWug&quot;,&quot;doxcnk2O1E8qI77U7jiN5DLvz8f&quot;,&quot;doxcnRmICoblk20YyIHcDrx3eIh&quot;,&quot;doxcnVj36AtSUeb2oddJch2llLe&quot;,&quot;doxcnScEDDlwwPPQIa7W7gKTCch&quot;,&quot;doxcn85DImZbY2GXfP8kG6iTftd&quot;],&quot;text&quot;:{&quot;apool&quot;:{&quot;numToAttrib&quot;:{&quot;0&quot;:[&quot;author&quot;,&quot;7587678050121157823&quot;],&quot;1&quot;:[&quot;author&quot;,&quot;6978719968066027548&quot;]},&quot;nextNum&quot;:2,&quot;attribToNum&quot;:{&quot;author,7587678050121157823&quot;:0,&quot;author,6978719968066027548&quot;:1}},&quot;initialAttributedTexts&quot;:{&quot;text&quot;:{&quot;0&quot;:&quot;C#读取二维码内容,原来不用装SDK也能实现？&quot;},&quot;attribs&quot;:{&quot;0&quot;:&quot;*0+9*1+1*0+d&quot;},&quot;rows&quot;:{},&quot;cols&quot;:{}}},&quot;align&quot;:&quot;&quot;}}},&quot;payloadMap&quot;:{&quot;doxcnlu4rzrghHWtTqXtzB2a3Ff&quot;:{&quot;level&quot;:1},&quot;doxcnwubc81Zr4LM986dmCm8L8c&quot;:{&quot;level&quot;:1},&quot;doxcnk2O1E8qI77U7jiN5DLvz8f&quot;:{&quot;level&quot;:1}},&quot;extra&quot;:{&quot;channel&quot;:&quot;saas&quot;,&quot;pasteRandomId&quot;:&quot;cd620a4c-dbeb-4e6f-8b6b-b777893c33fb&quot;,&quot;mention_page_title&quot;:{},&quot;external_mention_url&quot;:{},&quot;isEqualBlockSelection&quot;:true},&quot;isKeepQuoteContainer&quot;:false,&quot;selection&quot;:[{&quot;id&quot;:2,&quot;type&quot;:&quot;block&quot;,&quot;recordId&quot;:&quot;doxcnOOHvzdpUZEbwWv8BupVBXb&quot;},{&quot;id&quot;:3,&quot;type&quot;:&quot;block&quot;,&quot;recordId&quot;:&quot;doxcnlu4rzrghHWtTqXtzB2a3Ff&quot;},{&quot;id&quot;:4,&quot;type&quot;:&quot;block&quot;,&quot;recordId&quot;:&quot;doxcnmwftGEW6OrU14Ip0yynnoc&quot;},{&quot;id&quot;:5,&quot;type&quot;:&quot;block&quot;,&quot;recordId&quot;:&quot;doxcnwubc81Zr4LM986dmCm8L8c&quot;},{&quot;id&quot;:6,&quot;type&quot;:&quot;block&quot;,&quot;recordId&quot;:&quot;doxcnDzLLiJIuxREusS7gO3KWug&quot;},{&quot;id&quot;:7,&quot;type&quot;:&quot;block&quot;,&quot;recordId&quot;:&quot;doxcnk2O1E8qI77U7jiN5DLvz8f&quot;},{&quot;id&quot;:8,&quot;type&quot;:&quot;block&quot;,&quot;recordId&quot;:&quot;doxcnRmICoblk20YyIHcDrx3eIh&quot;},{&quot;id&quot;:9,&quot;type&quot;:&quot;block&quot;,&quot;recordId&quot;:&quot;doxcnVj36AtSUeb2oddJch2llLe&quot;},{&quot;id&quot;:10,&quot;type&quot;:&quot;block&quot;,&quot;recordId&quot;:&quot;doxcnScEDDlwwPPQIa7W7gKTCch&quot;},{&quot;id&quot;:11,&quot;type&quot;:&quot;block&quot;,&quot;recordId&quot;:&quot;doxcn85DImZbY2GXfP8kG6iTftd&quot;}],&quot;pasteFlag&quot;:&quot;3533843d-91b3-418a-a761-a0fe41f0f4a0&quot;}\" data-lark-record-format=\"docx\u002Frecord\" class=\"lark-record-clipboard\">\u003C\u002Fspan>\t",41,1767698905,"八木屋","","C#读取二维码内容, 如何用C#读取二维码内容, C#读取二维码内容能识别哪些格式, 图片中C#读取二维码内容, C#自动化读取二维码内容","C#读取二维码内容其实比你想的简单。不用复杂的第三方库，用原生类库就能解析图片里的二维码数据。这个方法支持本地图片和摄像头实时抓取，代码不到20行就能跑通。",2,0,"2026-05-23 22:13:03",{"article_title":19,"id":20,"type_id":6,"is_video":16},"抖音二维码生成步骤原来这么简单？多数人第一步就错了",19055,{"article_title":22,"id":23,"type_id":6,"is_video":16},"微信怎么扫描二维码进群？原来长按和相册识别差别这么大",19053,[25,30,35,40,45,50,55,60],{"article_title":26,"article_image":27,"id":28,"seo_title":26,"brief":29,"duration":12,"video_img":12,"type_id":6},"药品二维码扫出来是空白？原来这个信息才是关键","https:\u002F\u002Fhs1.bmwas.cn\u002Farticle\u002F07d74fa6741888886d2cef70ae790a49.jpg",19162,"　　拿到新买的药，习惯性掏出手机扫一扫包装上的二维码，结果屏幕一片空白——这种情况你遇到过吗？先别急着怀疑买到假药，很可能是扫错了位置。药品包装上往往印着好几个二维码，有的跳转购物链接，有的关注公众号，真正能查验真伪的那个，藏在不起眼的角落里。　　买药后扫二维码却显示空白，不一定是假药。药盒上通常有多个二维码，只有标注「电子监管码」的才能查验真伪。打开一盒常见的感冒药，仔细看包装侧面和底部，你会发",{"article_title":31,"article_image":32,"id":33,"seo_title":31,"brief":34,"duration":12,"video_img":12,"type_id":6},"小程序链接怎么转换成二维码？原来微信自带这个功能","https:\u002F\u002Fhs1.bmwas.cn\u002Farticle\u002F63c1498d4588566b6c666d0aad60712e.jpg",19161,"　　做小程序运营的朋友，经常会遇到这样的需求：把某个活动页面或商品详情做成二维码，印在海报上或发到社群里。很多人不知道微信公众平台就能直接生成小程序码，本文详细讲解官方生成方法、参数配置技巧，以及什么情况下需要用活码工具。　　不过官方功能也有局限性。二维码生成后无法修改跳转地址，如果活动链接临时调整，就得重新生成、重新印刷。掌握这些方法后，线下推广和数据追踪都能更高效，选对工具才能少走弯路。1.1",{"article_title":36,"article_image":37,"id":38,"seo_title":36,"brief":39,"duration":12,"video_img":12,"type_id":6},"怎么把内容生成二维码？原来手机自带这个功能","https:\u002F\u002Fhs1.bmwas.cn\u002Farticle\u002F7e314439d73179d9e38011e3f24cc291.jpg",19160,"　　需要临时分享文字或链接时，很多人会专门下载二维码生成APP。实际上iPhone和安卓手机都内置了这个功能，只是入口藏得比较深。手机里其实藏着一个免费的二维码生成器，只是大部分人从来没用过。当你需要把WiFi密码、收款信息或一段文字快速分享给别人时，不用专门下载APP，直接用系统自带功能就能完成。不占内存、没有广告、操作快，特别适合临时使用的场景。1.1、不同系统的操作入口在哪iPhone用户可",{"article_title":41,"article_image":42,"id":43,"seo_title":41,"brief":44,"duration":12,"video_img":12,"type_id":6},"小程序码转换二维码，原来微信自带这个隐藏功能","https:\u002F\u002Fhs1.bmwas.cn\u002Farticle\u002F602508d4ad2e7df05aa0e137c093bbad.jpg",19159,"　　运营活动要在多个渠道投放，设计给的小程序码在有些平台识别不了。客户要把小程序分享给用微信老版本的用户，对方扫码后直接卡住。这些场景都指向同一个需求：把小程序码转成兼容性更好的普通二维码。很多人第一反应是找第三方工具，但微信内置了转换功能，这个功能藏得比较深，掌握后能快速解决临时转换需求。1. 微信自带的转换入口　　微信其实自带转换功能，藏在扫一扫的识别结果页。打开微信扫一扫，对准小程序码扫描，",{"article_title":46,"article_image":47,"id":48,"seo_title":46,"brief":49,"duration":12,"video_img":12,"type_id":6},"网址怎么生成二维码？原来浏览器自带这个功能","https:\u002F\u002Fhs1.bmwas.cn\u002Farticle\u002F62d2f7a0552101de8c8d5fc00af09c24.jpg",19158,"　　打开电脑上的网页，想快速传到手机上继续看，你会怎么做？复制网址发微信？还是用数据线传文件？有个更直接的办法——把网址生成二维码，手机扫一下就能打开。关键是，你现在用的浏览器可能就自带这个功能，根本不用额外下载工具或跳到其他网站。　　这个方法特别适合临时分享网页、做演示文稿时加个扫码链接，或者给客户发产品页面。操作简单，而且你的网址不会经过第三方服务器，隐私更有保障。1.1. 主流浏览器怎么操作",{"article_title":51,"article_image":52,"id":53,"seo_title":51,"brief":54,"duration":12,"video_img":12,"type_id":6},"微信扫码页面跳转不出来？这个隐藏开关90%的人没打开","https:\u002F\u002Fhs1.bmwas.cn\u002Farticle\u002F4a6f99e170e08d4471a2c54a14f4ec17.jpg",19157,"　　扫完二维码，页面卡在白屏界面，或者直接弹出\"已停止访问该网页\"——这种情况在日常工作中特别常见。反复重启微信也没用？别急着怀疑手机出问题。大部分跳转失败都跟微信的安全保护机制有关。为了防止恶意链接，微信会自动拦截部分外部跳转，而这个保护功能的开关藏得比较深，导致不少用户在不知情的情况下被限制了正常访问。本文从设置调整、缓存清理到链接检测，帮你系统排查跳转失败的真实原因，并提供可落地的解决方案。",{"article_title":56,"article_image":57,"id":58,"seo_title":56,"brief":59,"duration":12,"video_img":12,"type_id":6},"图片如何生成二维码？原来手机相册就能直接转换","https:\u002F\u002Fhs1.bmwas.cn\u002Farticle\u002F32de6bec0c6d40956ca96ed21973a608.jpg",19156,"　　需要把照片快速分享给客户，但微信传图会被压缩？把图片转成二维码，对方扫一下就能看原图。产品细节图发给客户，微信直接传会模糊；活动海报想让参会者扫码保存，群发文件又太麻烦。把图片转成二维码，就能解决传输慢、画质损失、不方便打印这些问题。　　现在的二维码生成工具，已经不需要专门下载软件。手机自带功能就能完成基础转换，专业工具则能处理批量图片、设置永久有效期、甚至让一个码关联多张图。本文从实际操作出",{"article_title":61,"article_image":62,"id":63,"seo_title":61,"brief":64,"duration":12,"video_img":12,"type_id":6},"微信扫码下载的文件存在手机什么位置？原来藏在这个文件夹","https:\u002F\u002Fhs1.bmwas.cn\u002Farticle\u002F25a804dcc367c0bab995383eaa89d29f.jpg",19155,"　　扫码下载完文件，想再打开看看，却怎么也找不到存在哪儿了。工作文档、合同或产品资料，找不到真让人着急。问题不在于文件丢了，而是不知道微信把它们藏在了手机的哪个角落。文件一直都在，只是存储位置比较隐蔽。微信扫码下载的内容默认保存在特定文件夹中，掌握查找方法后几秒钟就能定位。更重要的是，了解存储逻辑能帮你更好地管理手机空间，避免重要文件被误删。1.1、文件默认存储位置与查找方法　　微信把扫码下载的文"]