一个木函是一款强大的手机软件,里面囊括了很多小功能,每一个都基本可以堪称小程序。那么,这些小功能具体是怎么实现的呢?让我们来一起来探讨二维码生成、IP查询这两个功能吧

一、二维码生成

首先,我们来看看里面的一个简单的二维码自定义生成小功能,它进去后的界面是这样的:

  我们可以看到:(1)我们可以调节二维码的颜色,也就是可以改变平常时我们看到的二维码是黑色的那块的颜色,以及二维码的背景色,也就是后面默认为白色的部分。

(2)我们可以调节二维码的尺寸和二维码(默认为黑色的那部分)的边距。

  了解到具体的应用后,我们用默认模式试试,首先我们生成一个自定义二维码(内容自己定义输入)该效果如图:

  然后扫一扫就可以看见自己写的内容啦!效果如图:

是不是很神奇?是不是很好奇?那这样的二维码是如何产生的呢?让我们一起来看看这个小功能是怎么实现的吧!

首先,我们先简单了解一下二维码的原理:

  二维码(2-dimensional bar code)是利用某种特定的几何图形按一定的规律在平面(在二维角度上)分布的黑白相间的图形记录数据符号信息的。

  它们通常由码制编写而成,如data matrix,maxi code等等;还分有堆叠式(行排式)、阵式等,其中阵式最流行的就是QR CODE了吧。

  相比“一维码”也就是条形码来说,二维码可以储存的数据量更大,还可以包含字符、数字及文本等混合的东西;同时还会有一定的容错性,在一部分损坏的同时,还可以正常被取读出来。

现在,我们来探讨一下当下最为流行的QR code:

  之所以会这么受大家的欢迎,其中之一的原因是它解码速度快,还可以储存多种类型。下面是结构图(图片来源百度):

为大家科普一下基本信息:

  位置探测图形、位置探测图形分隔符、定位图形这三个用于二维码的定位,对每个QR code ,位置基本都是固定存在的,只是可能会因为大小存在一些差异。

  校正图形:确定规格,那校正图形的数量和位置也就确定。

  格式信息:表示该二维码的纠错级别;一般有L、M、Q、H这几个等级。也就是纠错等级,在一定的规格内,纠错等级越高,那么其真实的数据容量就会越小。在二维码的规格和纠错等级确定的情况下,它所能够容纳的码字总数和纠错码字数就确定了。

  版本信息:其实就是二维码的规格,QR code符号共有40规格的矩阵,从21x21(版本1)到177x177(版本40),每一个版本比前一个版本每边增加4个模块。

  数据和纠错码字:实际保存的信息和纠错码字。

编码的简要过程:

  1.确定要编码的字符类型,选择纠错等级。

  2.将数据类型字符转换为位流,每8位一个码字,构成一个数据码字序列,知道了码字序列,就知道了二维码的内容。

  3.将码字序列划分成块,根据纠错等级和分块来产生纠错码字,并把纠错码字加入到数据码字序列后面,成为一个崭新的序列。

  4.将上面的数据序列按次序分别放进分块中,按照规定的数据分块进行每一块的计算,得出相应的纠错码字区块,把纠错码字区块按顺序构成一个序列,添加到原先的数据码字序列后面。

  5.将固定的位置探测图形、位置探测图形分隔符、定位图形以及校正图形和码字模块放入到矩阵当中,并将完整的序列填充到相应规格的二维码矩阵(即相应的版本)的区域中。如:

  6.用掩膜图形于编码区域,使二维码图形变成深浅色区域块;并生成相应的格式和版本信息。

最后,如果我们利用Python语言的qrcode库函数,就很容易实现二维码生成的功能,如:

                        

二、国内IP查询

  1.了解IP

  IP址址不能重复,这个需要限定在一定范围。比如,同一局域网,IP地址是不能重复的。还有就是涉及一个NAT(网络地址转换)的问题。

  IP地址分为私有地址和公有地址,私有地址可以自己定义。路由器都有NAT功能,可以将这些私有地址转换为合法的公有IP(IP其实就类似是我们电脑的电话号码一样)。

  2.查询IP

  其实很简单,类似百度,只要输入IP,就会出现IP查询,如果你用手机查询,那就是你手机本机的IP地址。

  Windows有一个系统内置的网络命令,就是“netstat”,来查出对方的IP地址,不过条件是你们得在QQ聊上天才行。实现如下:

首先,单击“开始”或“运行”命令,输入“cmd”命令,进入到MS—DOS状态中,然后执行“netstat -n”命令,当连接状态是“Established”时,表明你的计算机和对方的计算机之间连接成功了。

二维码生成与windows系统IP查询功能的更多相关文章

  1. Windows phone 8 二维码生成与扫描

    1. 二维码的生成 二维码生成用到了一个第三方的插件(zxing.wp8.0) 根据指定的信息,生成对应的二维码. 代码很简单: bool falg=tbk.Text==""?fa ...

  2. 杂项收集,包括-发邮件、二维码生成、文件下载、压缩、导出excel

    本篇就最近工作解决的问题做个代码收集.包括以下几个方面:发邮件.二维码生成.文件下载.压缩.导出excel.有一种可用的解决方法就好,不求全面,不求原理. 1.发邮件: 命名空间:System.Net ...

  3. 在云平台上基于Go语言+Google图表API提供二维码生成应用

    二维码能够说已经深深的融入了我们的生活其中.到处可见它的身影:但通常我们都是去扫二维码, 曾经我们分享给朋友一个网址直接把Url发过去,如今我们能够把自己的信息生成二维码再分享给他人. 这里就分享一下 ...

  4. Winform窗体实现简单的二维码生成和保存

    二维码的生成需要用到二维码生成的类库,ThoughtWorks.QRCode.dll 步骤: 第一步:下载二维码生成类库,ThoughtWorks.QRCode.dll 第二步:新建winform项目 ...

  5. android 二维码生成+扫描

    android 二维码生成+扫描 1.在Android应用当中,很多时候都要用到二维码扫描,来避免让用户手动输入的麻烦. Google官方自己推出了一个二维码开源项目:ZXing库. 2.这里简单介绍 ...

  6. 玩转Android之二维码生成与识别

    二维码,我们也称作QRCode,QR表示quick response即快速响应,在很多App中我们都能见到二维码的身影,最常见的莫过于微信了.那么今天我们就来看看怎么样在我们自己的App中集成二维码的 ...

  7. C#二维码生成与解码(二)

    本文内容在<C#二维码生成与解码>的基础上增加了纠错级别和Logo图标加入,增加了二维码的功能.关于透明度在这里没有单独显现,因为在颜色里面就已经包含,颜色值由8位8进制构成,最前面的两位 ...

  8. Android开发——Android中的二维码生成与扫描

    0. 前言 今天这篇文章主要描述二维码的生成与扫描,使用目前流行的Zxing,为什么要讲二维码,因为二维码太普遍了,随便一个Android APP都会有二维码扫描.本篇旨在帮助有需求的同学快速完成二维 ...

  9. 二维码生成插件qrious及网站扫码登录的一些理解

    什么是二维码 ​ 二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型. ...

随机推荐

  1. 小程序将base64的多张图片,传到tp5后台

    zhu要是前端传过来的数据是base64的数据库存储不了base64的数据,因存储量太过于大,因此后台要将base64的数据转换成,34124323534.jpg等格式的,数据库才可将其存储 源码暂时 ...

  2. 本地环境Django配置问题

    Django本地环境出现的问题 当你的前端出现这个问题的时候 你只需要吧setting.py 中的DEBUG 改为 True,即可 我原来是是DEBUG = False 本人亲测有用!!!

  3. 真的可以啊,用C语言实现面向对象编程O O P!C语言真的无所不能~

    解释区分一下C语言和OOP 我们经常说C语言是面向过程的,而C++是面向对象的,然而何为面向对象,什么又是面向过程呢?不管怎么样,我们最原始的目标只有一个就是实现我们所需要的功能,从这一点说它们是殊途 ...

  4. ScanTailor-ScanTailor 强大的多方位的满足处理扫描图片的需求

    ScanTailor 强大的多方位的满足处理扫描图片的需求   ScanTailor 能做什么? 批量或单张或选择区间旋转图片 自动切割页面,同时提供手动选项 自动识别图像歪斜角度,同时提供手动选项 ...

  5. gti 常用命令

    git add 文件 : 追踪指定文件git add . :追踪所有的文件git commit -m "注释" : 提交报本地仓库git push : 推送远程仓库git pull ...

  6. c++数组的替代品

  7. 在git下如何创建分支

    创建main分支下的远程分支dev: 直接输入dev,就可以创建在main分支下的远程分支dev了 在dev下创建devdev

  8. nginx负载均衡常见问题配置信息

    nginx为后端web服务器(apache,nginx,tomcat,weblogic)等做反向代理 几台后端web服务器需要考虑文件共享,数据库共享,session共享问题.文件共享可以使用nfs, ...

  9. Swagger配置与使用

    问题:前后端分离时代的到来 前端需要测试后端数据 后端提供接口,实时更新接口的改动 一.Swagger简介 号称世界上最流行的api框架 Restful api文档在线自动生成工具-->api文 ...

  10. Vue框架 周期

    用Vue框架,熟悉它的生命周期可以让开发更好的进行. 首先先看看官网的图,详细的给出了vue的生命周期: 它可以总共分为8个阶段: beforeCreate(创建前), created(创建后), b ...