import android.graphics.Bitmap;
import android.graphics.Matrix;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.WriterException;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;
import java.util.Hashtable;
/**
* Created by xiaolei on 2017/4/26.
*/
public class QRCodeUtil
{
// 生成QR圖
public static Bitmap createImage(String text, int w, int h, Bitmap logo)
{
try
{
Bitmap scaleLogo = getScaleLogo(logo, w, h);
int offsetX = (w - scaleLogo.getWidth()) / 2;
int offsetY = (h - scaleLogo.getHeight()) / 2;
Hashtable<EncodeHintType, Object> hints = new Hashtable<>();
hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
hints.put(EncodeHintType.MARGIN, 0);
BitMatrix bitMatrix = new QRCodeWriter().encode(text,
BarcodeFormat.QR_CODE, w, h, hints);
int[] pixels = new int[w * h];
for (int y = 0; y < h; y++)
{
for (int x = 0; x < w; x++)
{
if (x >= offsetX && x < offsetX + scaleLogo.getWidth() && y >= offsetY && y < offsetY + scaleLogo.getHeight())
{
int pixel = scaleLogo.getPixel(x - offsetX, y - offsetY);
if (pixel == 0)
{
if (bitMatrix.get(x, y))
{
pixel = 0xff000000;
} else
{
pixel = 0xffffffff;
}
}
pixels[y * w + x] = pixel;
} else
{
if (bitMatrix.get(x, y))
{
pixels[y * w + x] = 0xff000000;
} else
{
pixels[y * w + x] = 0xffffffff;
}
}
}
}
Bitmap bitmap = Bitmap.createBitmap(w, h,
Bitmap.Config.ARGB_8888);
bitmap.setPixels(pixels, 0, w, 0, 0, w, h);
return bitmap;
} catch (WriterException e)
{
e.printStackTrace();
}
return null;
}
private static Bitmap getScaleLogo(Bitmap logo, int w, int h)
{
if (logo == null) return null;
Matrix matrix = new Matrix();
float scaleFactor = Math.min(w * 1.0f / 5 / logo.getWidth(), h * 1.0f / 5 / logo.getHeight());
matrix.postScale(scaleFactor, scaleFactor);
Bitmap result = Bitmap.createBitmap(logo, 0, 0, logo.getWidth(), logo.getHeight(), matrix, true);
return result;
}
}
使用ZXing生成二維碼,可設(shè)置中間icon拗踢,邊緣白色寬度為0
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門妹懒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來雀监,“玉大人双吆,你說我怎么就攤上這事』崆埃” “怎么了好乐?”我有些...
- 文/不壞的土叔 我叫張陵,是天一觀的道長瓦宜。 經(jīng)常有香客問我蔚万,道長,這世上最難降的妖魔是什么临庇? 我笑而不...
- 正文 為了忘掉前任反璃,我火速辦了婚禮昵慌,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘淮蜈。我一直安慰自己斋攀,他們只是感情好,可當(dāng)我...
- 文/花漫 我一把揭開白布梧田。 她就那樣靜靜地躺著淳蔼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪裁眯。 梳的紋絲不亂的頭發(fā)上鹉梨,一...
- 文/蒼蘭香墨 我猛地睜開眼埋虹,長吁一口氣:“原來是場噩夢啊……” “哼猜憎!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起搔课,我...
- 序言:老撾萬榮一對情侶失蹤胰柑,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后爬泥,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體柬讨,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年袍啡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了踩官。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
- 正文 年R本政府宣布,位于F島的核電站信粮,受9級特大地震影響黔攒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一督惰、第九天 我趴在偏房一處隱蔽的房頂上張望不傅。 院中可真熱鬧,春花似錦赏胚、人聲如沸蛤签。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽震肮。三九已至,卻和暖如春留拾,著一層夾襖步出監(jiān)牢的瞬間戳晌,已是汗流浹背。 一陣腳步聲響...
- 正文 我出身青樓咳蔚,卻偏偏與公主長得像豪嚎,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子谈火,可洞房花燭夜當(dāng)晚...
推薦閱讀更多精彩內(nèi)容
- 小魚-fishy(只是讀音一樣的名字)蜓堕,我卻很喜歡抛虏,那是我向往的;我不是小魚俩滥,我沒有大海嘉蕾,有像海寬容的家人;...