2017-05-17 28 views
0

我使用斑馬線核(0.14.0.2)創建一個條形碼,給了我一個BitMatrix,但是我還沒有發現的文件爲如何提取圖像部分從BitMatrix並使用它作爲BitMap,所以我可以合併在我的大圖像。最後,我想直到結束會是這樣的:斑馬線核心BitMatrix位圖

White Image With Barcode at the bottom

我目前擁有的代碼是:

img = new Bitmap(300, 375); 
drawing = Graphics.FromImage(img); 
var barCode = new Code128Writer().encode(packageModel.TrackingId.PrintValue, BarcodeFormat.CODE_128, 280, 70); 
src = transform **barCode** to **Drawing.Image** 
drawing.DrawImage(src, new Rectangle(10, 255, 280, 70)); 

UPDATE 我現在有這樣的代碼,但是我出現錯誤您必須設置一個渲染器實例。我不明白爲什麼界面本身沒有實例化這個類。沒有可用的文件顯示這應該如何工作。我不能使用函數,因爲渲染設置爲空,但我不知道如何實例化它。

IBarcodeWriterGeneric<Image> barcodeWriterGeneric = new BarcodeWriterGeneric<Image> 
{ 

     Format = BarcodeFormat.CODE_128, 
     Options = new EncodingOptions 
     { 
      Width = 280, 
      Height = 70 
     }, 
     Renderer = new PixelData() //HOW DOES THE RENDERER WORK???? 
}; 

var test = barcodeWriterGeneric.Write("WORKS"); 
drawing.DrawImage(test, new Rectangle(10, 255, 280, 70)); 

回答

1

據我可以看到ZXing-Core fork缺少PixelDataRenderer類。它只包含RawRenderer。您應該切換到當前版本爲0.15.0的原始ZXing.Net軟件包。那一個包含條碼編寫器類「BarcodeWriterPixelData」,它對Renderer屬性進行必要的初始化。 ZXing.Net的下一個版本將包含一些更專門的綁定到其他.Net Core兼容的圖像庫,如CoreCompat.System.Drawing,ImageSharp,OpenCV等。使用該綁定,您可以生成除PixelData之外的其他輸出格式。

+0

克隆了ZXing-Core軟件包後,我得出了同樣的結論,ZXing-Core軟件包中缺少關鍵類。過去幾個小時我一直在拉我的頭髮。我會嘗試使用ZXIng.Net軟件包,但我不確定我是否能夠將其安裝在我的Web API核心項目中。謝謝你的回答,這證實了我的懷疑。 – Lostaunaum

+0

ZXing.Net版本0.16.0可用。有一個特殊的nuget軟件包可以直接支持CoreCompat.System.Drawing。 https://www.nuget.org/packages/ZXing.Net.Bindings.CoreCompat.System.Drawing/ 您現在可以使用類ZXing.CoreCompat.System.Drawing.BitmapWriter。 – Michael