国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|

服務器之家 - 編程語言 - JAVA教程 - QR 二維碼中插入圖片實現方法

QR 二維碼中插入圖片實現方法

2020-07-02 11:56skyYangpan JAVA教程

這篇文章主要介紹了QR 二維碼中插入圖片實現方法的相關資料,需要的朋友可以參考下

QR 二維碼中插入圖片

二維碼終于火了,現在大街小巷大小商品廣告上的二維碼標簽都隨處可見,而且大都不是簡單的純二維碼,而是中間有個性圖標的二維碼。

我之前做了一個使用google開源項目zxing實現二維碼、一維碼編碼解碼的程序并開放了源碼(用C#實現的條形碼和二維碼編碼解碼器),今天繼續在此程序基礎上,實現二維碼中間加小圖片。

背景知識

QRcode使用里德-所羅門碼來進行錯誤修正。對于我們來說,里德-所羅門編碼有兩個非常重要的特性。第一,它是一種顯式系統碼,也就是說,你可以在最終的編碼中直接看到原有的信息。就好比我們對”hello world”進行編碼,最終看到的是”hello world”以及其后面跟隨的幾個容錯碼。第二點,里德-所羅門編碼是可以被”異或”的,將兩個不同里德-所羅門編碼得到的結果異或運算后會得到一個新的里德-所羅門碼,并且這個新碼的原碼即是原來兩個原碼的異或。如果你想知道為什么這兩個特性會成立,請看Finite Field Arithmetic and Reed-Solomon Coding.

QRcode

一副QRcode圖像會定義一些獨特的描述符來幫助人們或者電腦識別出自己是一張QRcode。這種描述符隨著QRcode的大小不同而略有區別——越大的QRcode圖像擁有越多的描述符。但是對于人的識別來說,特征最明顯的還是圖片的四個角的符號是固定的,看到這樣的四個角人類就本能的反應:這是一個QRcode。

(實際上,我們可以通過讀取圖像最左上角的兩個象素點來判斷編碼的冗余程度。定義黑色為0,白色為1,那么如果看到00則是L級別的冗余,01是M,10是Q,11則是最高的H級別冗余。

有了上面的這些工作,我們可以非常容易的知道原碼信息在圖像中的位置。然后通過改變自己的原碼信息,就可以改變圖像中的像素以至于可以在里面作圖了。雖說如此,下面的一些情形可以讓事情變得更有趣。

我做的二維碼插入圖片:

之前我給大家免費提供了使用zxing開源項目改造而成的一二維碼編碼解碼器,但未能插入圖片。這次經過一番努力,成功將圖片插入二維碼,并能編碼和解碼。插入圖片的關鍵在于二維碼容錯系數的調整,源碼中有詳盡描述。

界面:

QR 二維碼中插入圖片實現方法

QR 二維碼中插入圖片實現方法

要在二維碼中插入圖片且可以正常解碼,主要注意以下兩點即可:

1.設置二維碼的容錯系數要高;

在Zxing項目中,二維碼生成的時候是可以設置容錯系數的:

將EncodeHintType.ERROR_CORRECTION設置成ErrorCorrectionLevel.H

?
1
2
3
4
5
6
7
8
//構造二維碼寫碼器
        MultiFormatWriter mutiWriter = new com.google.zxing.MultiFormatWriter();
        Hashtable hint=new Hashtable();
        hint.Add(EncodeHintType.CHARACTER_SET,"UTF-8");
        hint.Add(EncodeHintType.ERROR_CORRECTION,com.google.zxing.qrcode.decoder.ErrorCorrectionLevel.H);
        //生成二維碼
        ByteMatrix bm = mutiWriter.encode(txtMsg.Text, com.google.zxing.BarcodeFormat.QR_CODE, 300, 300,hint);
        Bitmap img = bm.ToBitmap();

2.中間插入的圖片大小和位置要合適;

QR 二維碼中插入圖片實現方法

中間圖片如果太大,遮住了二維碼的大部分面積,那肯定不行,如果太小,就起不到個性化的效果。

那么多大合適呢,根據前文中描述的QR碼的特點,其三個帶方塊的角上是數據區,不能覆蓋,只有中間和右下角這片區域可以覆蓋,但也不宜過大。

經測試,中間小圖片尺寸占二維碼總寬度的2/7比較合適,既滿足了圖片的清晰度,又不影響二維碼的加密數據。

小圖片最好居中放置,而且形狀可以不規則。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲综合色自拍一区 | 91性高湖久久久久久久久网站 | 日韩免费在线观看视频 | 91毛片视频 | 中文字幕免费播放 | 久久久久久免费看 | 久久爱成人 | 一级在线观看视频 | 亚洲国产精品久久久久久久久久久 | 久久久久久久av | 久久国产欧美日韩精品 | 日韩一区电影 | 超碰中文字幕 | 欧洲精品码一区二区三区免费看 | jizzhd中国| 亚洲精品视频在线播放 | 久久久国产一区 | av网站在线看 | jav成人av免费播放 | 精品欧美一区二区三区久久久 | 欧美成人精精品一区二区频 | 午夜在线电影 | 精品视频一区二区三区在线观看 | 欧美a级成人淫片免费看 | 国产精品99久久 | 亚洲一级黄色 | 自拍偷拍中文字幕 | 日韩精品视频在线播放 | 国内av网站| 亚洲天堂一区二区 | 日韩资源在线 | 亚洲中午字幕 | 国产乱淫精品一区二区三区毛片 | 亚洲三区在线观看 | 亚洲精品国产综合99久久夜夜嗨 | 亚洲视频一区 | 中文字幕免费播放 | 日韩成人在线播放 | 国产精品久久久久一区二区三区 | 老牛嫩草一区二区三区眼镜 | 国产精品去看片 |