freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

二維碼的生成細節(jié)和原理(已修改)

2024-08-22 00:52 本頁面
 

【正文】 二維碼的生成細節(jié)和原理二維碼又稱QR Code,QR全稱Quick Response,是一個近幾年來移動設(shè)備上超流行的一種編碼方式,它比傳統(tǒng)的Bar Code條形碼能存更多的信息,也能表示更多的數(shù)據(jù)類型:比如:字符,數(shù)字,日文,中文等等。這兩天學(xué)習(xí)了一下二維碼圖片生成的相關(guān)細節(jié),覺得這個玩意就 是一個密碼算法,在此寫一這篇文章 ,揭露一下。供好學(xué)的人一同學(xué)習(xí)之。關(guān)于QR Code Specification,可參看:基礎(chǔ)知識首先,我們先說一下二維碼一共有40個尺寸。官方叫版本Version。Version 1是21 x 21的矩陣,Version 2是 25 x 25的矩陣,Version 3是29的尺寸,每增加一個version,就會增加4的尺寸,公式是:(V1)*4 + 21(V是版本號) 最高Version 40,(401)*4+21 = 177,所以最高是177 x 177 的正方形。下面我們看看一個二維碼的樣例:定位圖案 Position Detection Pattern是定位圖案,用于標(biāo)記二維碼的矩形大小。這三個定位圖案有白邊叫Separators for Postion Detection Patterns。之所以三個而不是四個意思就是三個就可以標(biāo)識一個矩形了。 Timing Patterns也是用于定位的。原因是二維碼有40種尺寸,尺寸過大了后需要有根標(biāo)準(zhǔn)線,不然掃描的時候可能會掃歪了。 Alignment Patterns 只有Version 2以上(包括Version2)的二維碼需要這個東東,同樣是為了定位用的。功能性數(shù)據(jù) Format Information 存在于所有的尺寸中,用于存放一些格式化數(shù)據(jù)的。 Version Information 在 = Version 7以上,需要預(yù)留兩塊3 x 6的區(qū)域存放一些版本信息。數(shù)據(jù)碼和糾錯碼 除了上述的那些地方,剩下的地方存放 Data Code 數(shù)據(jù)碼 和 Error Correction Code 糾錯碼。數(shù)據(jù)編碼我們先來說說數(shù)據(jù)編碼。QR碼支持如下的編碼:Numeric mode數(shù)字編碼,從0到9。如果需要編碼的數(shù)字的個數(shù)不是3的倍數(shù),那么,最后剩下的1或2位數(shù)會被轉(zhuǎn)成4或7bits,則其它的每3位數(shù)字會被編成 10,12,14bits,編成多長還要看二維碼的尺寸(下面有一個表Table 3說明了這點)Alphanumeric mode字符編碼。包括 09,大寫的A到Z(沒有小寫),以及符號$ % * + – . / : 包括空格。這些字符會映射成一個字符索引表。如下所示:(其中的SP是空格,Char是字符,Value是其索引值) 編碼的過程是把字符兩兩分組,然后轉(zhuǎn)成下表的45進制,然后轉(zhuǎn)成11bits的二進制,如果最后有一個落單的,那就轉(zhuǎn)成6bits的二進制。而編碼模式和 字符的個數(shù)需要根據(jù)不同的Version尺寸編成9, 11或13個二進制(如下表中Table 3)Byte mode字節(jié)編碼,可以是0255的ISO88591字符。有些二維碼的掃描器可以自動檢測是否是UTF8的編碼。Kanji mode這是日文編碼,也是雙字節(jié)編碼。同樣,也可以用于中文編碼。日文和漢字的編碼會減去一個 值。如:在0X8140 to 0X9FFC中的字符會減去8140,在0XE040到0XEBBF中的字符要減去0XC140,然后把前兩位拿出來乘以0XC0,然后再加上后兩位,最 后轉(zhuǎn)成13bit的編碼。如下圖示例:Extended Channel Interpretation (ECI) mode主要用于特殊的字符集。并不是所有的掃描器都支持這種編碼。Struc
點擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1