需求是要把一串数字转化成条码,显示在界面上供打印机打印。

过程是使用zint库转化文本为rgb的buffer,然后把rgb转换成qt的QPixmap,在界面上显示,

如果是MFC的话,原理相通,有rgb数据显示都好办。

  1. QPixmap Bitmap2Pixmap(unsigned char *bitmap, int width, int height)
  2. {
  3.     QImage img(bitmap, width, height, QImage::Format_RGB888);
  4.     QPixmap ret;
  5.     ret.convertFromImage(img);
  6.     return ret;
  7. }
  8.  
  9.  
  10.  
  11.     struct zint_symbol *m_symbol;
  12.     m_symbol = ZBarcode_Create();
  13.     if (m_symbol == NULL)
  14.     {
  15.         QMessageBox::warning(this, "test", "ZBarcode_Create create failed!");
  16.         return;
  17.     }
  18.     else
  19.     {
  20.         m_symbol->symbology = BARCODE_CODE128;
  21.         m_symbol->scale = 2;
  22.     }
  23.  
  24.     ZBarcode_Encode_and_Buffer(m_symbol, (unsigned char *)inputStr.toLocal8Bit().data(), deviceId.size(), 0);
  25.     QPixmap pixmap = Bitmap2Pixmap((unsigned char *)m_symbol->bitmap, m_symbol->bitmap_width, m_symbol->bitmap_height);
  26.     ui->codeLabel->setPixmap(pixmap);
  27.     ZBarcode_Delete(m_symbol);
作者:帅得不敢出门   c++哈哈堂:31843264

10-03 11:08
查看更多