.net core下條形碼二維碼生成

最近做項(xiàng)目需要用到生成二維碼,找了一圈找到了這個,收藏起來,
需要安裝Nuget包:ZXing.Net.Bindings.ZKWeb.System.Drawing

/// <summary>
/// 二維碼和條形碼
/// </summary>
public class CodeHelper
{
// 生成二維碼
public static void CreateCodeEwm(string message, string gifFileName, int width = 600, int height = 600)
{
int heig = width;
if (width > height)
{
heig = height;
width = height;
}
if (string.IsNullOrWhiteSpace(message))
{
return;
}
string dir = Path.GetDirectoryName(gifFileName);
if (!Directory.Exists(dir))
{
Directory.CreateDirectory(dir);
}
var w = new ZXing.QrCode.QRCodeWriter();

    BitMatrix b = w.encode(message, BarcodeFormat.QR_CODE, width, heig);
    var zzb = new ZXing.ZKWeb.BarcodeWriter();
    zzb.Options = new EncodingOptions()
    {
        Margin = 0,

    };

    Bitmap b2 = zzb.Write(b);            
    b2.Save(gifFileName, ImageFormat.Gif);
    b2.Dispose();
}

/// <summary>
/// 生成二維碼返回byte數(shù)組
/// </summary>
/// <param name="message"></param>
/// <param name="width"></param>
/// <param name="height"></param>
/// <returns></returns>
public static byte[] CreateCodeBytes(string message, int width = 600, int height = 600)
{
    int heig = width;
    if (width > height)
    {
        heig = height;
        width = height;
    }
    if (string.IsNullOrWhiteSpace(message))
    {
        return null;
    }            
    var w = new ZXing.QrCode.QRCodeWriter();

    BitMatrix b = w.encode(message, BarcodeFormat.QR_CODE, width, heig);
    var zzb = new ZXing.ZKWeb.BarcodeWriter();
    zzb.Options = new EncodingOptions()
    {
        Margin = 0,

    };
    Bitmap b2 = zzb.Write(b);
    byte[] bytes = BitmapToArray(b2);
    return bytes;
}



/// <summary>
/// 讀取二維碼或者條形碼從圖片
/// </summary>
/// <param name="imgFile"></param>
/// <returns></returns>
public static string ReadFromImage(string imgFile)
{

    if (string.IsNullOrWhiteSpace(imgFile))
    {
        return "";
    }
    Image img = Image.FromFile(imgFile);
    Bitmap b = new Bitmap(img);

    //該類名稱為BarcodeReader,可以讀二維碼和條形碼
    var zzb = new ZXing.ZKWeb.BarcodeReader();
    zzb.Options = new DecodingOptions
    {
        CharacterSet = "UTF-8"
    };
    Result r = zzb.Decode(b);
    string resultText = r.Text;
    b.Dispose();
    img.Dispose();

    return resultText;

}

//將Bitmap  寫為byte[]的方法
public static byte[] BitmapToArray(Bitmap bmp)
{
    byte[] byteArray = null;

    using (MemoryStream stream = new MemoryStream())
    {

        bmp.Save(stream, ImageFormat.Png);
        byteArray = stream.GetBuffer();
    }

    return byteArray;
}
// 生成條形碼
public static void CreateCodeTxm(string message, string gifFileName, int width, int height)
{

    if (string.IsNullOrWhiteSpace(message))
    {
        return;
    }

    var w = new ZXing.OneD.CodaBarWriter();
    BitMatrix b = w.encode(message, BarcodeFormat.ITF, width, height);
    var zzb = new ZXing.ZKWeb.BarcodeWriter();
    zzb.Options = new EncodingOptions()
    {
        Margin = 3,
        PureBarcode = true
    };
    string dir = Path.GetDirectoryName(gifFileName);
    if (!Directory.Exists(dir))
    {
        Directory.CreateDirectory(dir);
    }
    Bitmap b2 = zzb.Write(b);
    b2.Save(gifFileName, ImageFormat.Gif);
    b2.Dispose();
}

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市僧免,隨后出現(xiàn)的幾起案子休玩,更是在濱河造成了極大的恐慌被芳,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件菩咨,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)廊移,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進(jìn)店門糕簿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人狡孔,你說我怎么就攤上這事懂诗。” “怎么了苗膝?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵殃恒,是天一觀的道長。 經(jīng)常有香客問我辱揭,道長离唐,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任问窃,我火速辦了婚禮亥鬓,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘域庇。我一直安慰自己贮竟,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布较剃。 她就那樣靜靜地躺著咕别,像睡著了一般。 火紅的嫁衣襯著肌膚如雪写穴。 梳的紋絲不亂的頭發(fā)上惰拱,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天,我揣著相機(jī)與錄音啊送,去河邊找鬼偿短。 笑死,一個胖子當(dāng)著我的面吹牛馋没,可吹牛的內(nèi)容都是我干的昔逗。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼篷朵,長吁一口氣:“原來是場噩夢啊……” “哼勾怒!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起声旺,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤笔链,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后腮猖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鉴扫,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年澈缺,在試婚紗的時候發(fā)現(xiàn)自己被綠了坪创。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片炕婶。...
    茶點(diǎn)故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖莱预,靈堂內(nèi)的尸體忽然破棺而出古话,到底是詐尸還是另有隱情,我是刑警寧澤锁施,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站杖们,受9級特大地震影響悉抵,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜摘完,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一姥饰、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧孝治,春花似錦列粪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至杭措,卻和暖如春费什,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背手素。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工鸳址, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人泉懦。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓稿黍,卻偏偏與公主長得像,于是被迫代替她去往敵國和親崩哩。 傳聞我的和親對象是個殘疾皇子巡球,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內(nèi)容

  • ¥開啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 6,409評論 0 17
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理邓嘹,服務(wù)發(fā)現(xiàn)辕漂,斷路器,智...
    卡卡羅2017閱讀 134,656評論 18 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法吴超,類相關(guān)的語法钉嘹,內(nèi)部類的語法,繼承相關(guān)的語法鲸阻,異常的語法跋涣,線程的語...
    子非魚_t_閱讀 31,631評論 18 399
  • Tecsun閱讀 385評論 0 0
  • 小說創(chuàng)作精進(jìn)營 文丨薔薇下的陽光 精進(jìn)營的成立缨睡,讓我看到了更多喜歡文字的人,也看到了大家的積極與熱情陈辱,看了每個人的...
    薔薇下的陽光閱讀 1,923評論 26 33