第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

如何在Android的藍(lán)牙打印機(jī)上打印圖像?

如何在Android的藍(lán)牙打印機(jī)上打印圖像?

米琪卡哇伊 2019-12-11 13:09:02
我必須在熱藍(lán)牙打印機(jī)上打印一些數(shù)據(jù),我正在這樣做:String message="abcdef any message 12345";byte[] send;send = message.getBytes();mService.write(send);它適用于文本,但不適用于圖像。我想我需要獲取byte[]圖像數(shù)據(jù)。我嘗試通過這種方式獲取圖像數(shù)據(jù):Bitmap bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.qrcode);ByteArrayOutputStream stream=new ByteArrayOutputStream();bitmap.compress(Bitmap.CompressFormat.PNG, 90, stream);byte[] image=stream.toByteArray();不幸的是,打印機(jī)打印了許多奇怪的字符(大約50厘米的紙張)。我不知道如何打印圖像。我想嘗試獲取位圖的像素,然后將其轉(zhuǎn)換為a byte[]并發(fā)送,但是我不知道該怎么做。謝謝
查看完整描述

3 回答

?
慕工程0101907

TA貢獻(xiàn)1887條經(jīng)驗(yàn) 獲得超5個(gè)贊

我也嘗試過此方法,得到了自己的解決方案,我想我已經(jīng)弄清楚了SELECT_BIT_IMAGE_MODE命令的工作原理。


該命令public static byte[] SELECT_BIT_IMAGE_MODE = {0x1B, 0x2A, 33, 255, 3};在類PrinterCommands是POS命令圖像打印。


前兩個(gè)是非常標(biāo)準(zhǔn)的,接下來的三個(gè)確定要打印圖像的模式和尺寸。為了這個(gè)解決方案,我們假設(shè)第二個(gè)元素(33,我們的索引為零)始終為33。


該byte []的最后兩個(gè)元素是指您要打印的圖像的Width(以像素為單位)屬性,元素3有時(shí)稱為nL,元素4有時(shí)稱為nH。他們實(shí)際上都指的寬度,nL是Low Byte同時(shí)nH是High Byte。這意味著我們最多可以擁有一個(gè)寬度為1111 1111 1111 1111b(二進(jìn)制)的圖像,該寬度為65535d(十進(jìn)制),盡管我尚未嘗試過。如果未將nL或nH設(shè)置為正確的值,則將隨圖像一起打印垃圾字符。


某種程度上,Android文檔告訴我們字節(jié)數(shù)組中字節(jié)值的限制為-128和+127,當(dāng)我嘗試輸入255時(shí),Eclipse要求我將其轉(zhuǎn)換為Byte。


無論如何,回到nL和nW,對于您的情況,您有一個(gè)寬度為576的圖像,如果將576轉(zhuǎn)換為Binary,我們將得到兩個(gè)字節(jié),如下所示:


0000 0010 0100 0000


在這種情況下,低字節(jié)為0100 0000,高字節(jié)為0000 0010。將其轉(zhuǎn)換回十進(jìn)制,我們得到nL = 64和nH = 2。


在我的情況下,我打印了一個(gè)寬度為330px的圖像,將330轉(zhuǎn)換為二進(jìn)制,我們得到:


0000 0001 0100 1010


現(xiàn)在,在這種情況下,低字節(jié)為0100 1010,高字節(jié)為0000 0001。轉(zhuǎn)換為十進(jìn)制,我們得到nL = 74和nH = 1。



查看完整回答
反對 回復(fù) 2019-12-12
  • 3 回答
  • 0 關(guān)注
  • 524 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號