Я использую Spire.Barcode в качестве библиотеки, поскольку она имеет лучший уровень распознавания. .
В настоящее время мне приходится загружать изображение дважды: один раз для сканирования штрих-кода, затем второй раз для загрузки его в пользовательский интерфейс.
Пользователь выбирает папку, а затем все изображения в папке сканируются на наличие штрих-кода, затем снова открываются, изменяются в размере и сохраняются в памяти для отображения в пользовательском интерфейсе
Код: Выделить всё
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
Я надеялся, что есть способ вместо того, чтобы загрузить изображение один раз, передать данные изображения в сканер , а затем измените размер и сохраните данные.
В Spire есть функция ScanStream, но до сих пор все способы, которыми я пытался преобразовать изображение в поток/байты, не работали с самая распространенная ошибка
Код: Выделить всё
'_io.BytesIO' object has no attribute 'Ptr'Я пытался использовать io.BytesIO. Я использовал PIL, встроенные в функцию toBytes().
Я пытался найти это в Google и просмотрел документацию, но понятия не имею.
Не совсем уверен, с чего начать. здесь.
Любая помощь будет очень признательна.
Подробнее здесь: https://stackoverflow.com/questions/782 ... stream-fun