【发布时间】:2015-04-12 20:20:25
【问题描述】:
我有这张我在 ms paint 中制作的图像106x17,我想将整个位图变成一个数字。图像本身存储为.png,我需要一种方法来读取图像并将每个像素存储为BigInteger 中的一个位。我需要读取图像的方式相当具体而且有点奇怪......图像需要从上到下从右到左逐行读取......所以右上角的像素应该是第一位在数字中,最左下角的像素应该是数字中的最后一位。
编辑:我可能应该澄清一点,由于文件存储为.png,我不能只将其读取为数字,因此我会在发布此更新后立即尝试将其导出为位图图像。此外,我将它存储在BigInteger 中,因为该数字应该是106x17= 1802 位长,因此该数字不能首先通过 int 或 long 传递,因为它会丢失大部分信息。最后,在这种情况下,黑色像素代表 1,白色像素代表 0……对于奇怪的约定感到抱歉,但这或多或少是我正在使用的。
【问题讨论】:
-
你的意思是二维码扫描仪之类的东西吗?
-
如果你使用的是 BufferedImage,你可以在上面调用
getRGB函数,然后使用val = image.getRGB(x,y) > 0 ? true : false,我猜。 -
@BenWin 我不确定 QR 码扫描仪是如何工作的,但我想这个概念是完全相同的。