我正在嘗試將我認為代表共同構成位圖圖像的字節(jié)的數字列表轉換為所述圖像文件(保存到磁盤)和/或簡單地轉換為超立方體可用的形式。不過,我更希望能夠可視化圖像,以確保轉換實際上正常工作。我不知道圖像的形狀,但我認為它可能是 4 寬 x 8 高。我有一個字體字符映射的 json 文件(一種基于圖像的字體,由日語詞典使用),其中每個字符都表示為位圖圖像,例如一個字符是: { "bitmap": [0,0,26,0,17,252,17,36,89,100,81,84,81,132,209,252,144,0,19,254,42,84,46,84,38,84,66,86,79,255,0,0], "code": 46370 }我試圖了解這些所代表的實際角色。我嘗試解決此問題的方法是將這些整數列表轉換為字節(jié)(或它們代表的字節(jié)數組),然后將它們轉換為位圖圖像文件(并可能將它們保存到磁盤 - 這就是我要執(zhí)行的步驟)停留在),然后我將 OCR 這些圖像(無論是在 python 中使用 tesseract,還是使用 Adobe 的 OCR,如果我可以將它們放入 pdf 中)以確定它們的 UTF-8 或 Shift-JIS 等效項。如果我把這個問題過于復雜化,那么我也希望得到更多的指導!我參考了以下 stackoverflow 帖子(以及其他一些帖子)來嘗試將整數列表轉換為實際的圖像文件: How do I conversion byte array to bitmap image in Python? 將 int 轉換為 Python 3 中的字節(jié) 圖像 從字節(jié) (python) PIL: 將 Bytearray 轉換為圖像 將 ASCII 代碼的 Numpy 數組轉換為字符串我也嘗試過這個庫,我想我成功地將列表轉換為表示位的字符串,以及該庫版本的位圖,但我不知道如何保存結果對象。查看源代碼,這個特定庫的位圖類對于我想做的事情似乎有點無用。上面的數字應該對應于這張圖片:(不是灰度)。我寫了一些將整數列表轉換為字節(jié)或“bytearray”的東西(我剛剛嘗試了很多不同的東西,我不確定我真正需要哪種格式),但是當我遇到問題時我就陷入了困境我嘗試將這些字節(jié)保存為 bmp 文件。根據我的嘗試,我會收到如下錯誤:OSError: cannot identify image file 'out.bmp'
OSError: cannot identify image file <_io.BytesIO object at 0x000001F037F7C5C8>
AttributeError: 'BitMap' object has no attribute 'save'或者,我只是保存一個無法打開的文件,因為它是不受支持的文件格式(例如,如果我只是打開一個文件并寫入它)。我猜問題的一部分是我沒有保存使用位圖標題的數據。而且,將一些字節(jié)保存為圖像似乎比我想象的要復雜得多,所以坦率地說,我什至不知道從哪里開始。我也不確定我正在制作的字節(jié)數組是單個字節(jié)的數組還是整個列表的某種表示形式......有人可以幫我將這個數字列表保存為圖像嗎?我不知道是否真的需要將其保存為位圖。這是我的程序(一個版本):import iofrom PIL import Imagetest_image = "out.bmp"test_bytes = [0,0,26,0,17,252,17,36,89,100,81,84,81,132,209,252,144,0,19,254,42,84,46,84,38,84,66,86,79,255,0,0]actual_bytes = bytes(test_bytes)def generate_output_image(input_image): image = Image.open(io.BytesIO(input_image)) image.save(test_image)generate_output_image(actual_bytes)
添加回答
舉報
0/150
提交
取消