我目前正在创建一个应用程序,可以从图像中读取条形码,然后显示图像。
我使用 Spire.Barcode 作为我的库,因为它似乎具有最佳的识别率。 目前我必须加载图像两次,一次扫描条形码,然后第二次将其加载到 UI 中
用户选择一个文件夹,然后扫描该文件夹中的所有图像的条形码,然后再次打开,调整大小并保存到内存中以在 UI 中显示
def scan_single_image_for_barcode(image_path):
try:
barcode = spire.BarcodeScanner.ScanFileWithBarCodeType(image_path, spire.BarCodeType.Code39)
print(f"Barcode From spire= {barcode} and barcode {barcode[0]}")
if barcode[0] is not None:
barcode = barcode[0]
except Exception as e:
print(f"Error scanning image '{image_path}': {e}")
barcode = None
return barcode
image_path 指向图像。
我希望有一种方法可以加载图像一次,将图像数据传递到扫描仪,然后调整大小并存储数据。
Spire 确实有一个名为 ScanStream 的函数,但到目前为止,我尝试将图像转换为流/字节的每种方法都不起作用,最常见的错误是
'_io.BytesIO' object has no attribute 'Ptr'
我认为这可能与 Spire.Barcode 是一个 C 库有关。
我尝试过使用io.BytesIO。我使用了 toBytes() 函数中内置的 PIL。 我尝试用谷歌搜索并查看文档,但我真的不知道。
不太确定从这里去哪里。 非常感谢任何帮助。