On Thursday, 2 February 2023 22:31:47 CET Karl Weber wrote: > I get > > scanimage: unrecognized option '--format=jpeg' > > The backend used in this case is hpaio.
I know what is wrong and in particular why it works with the test device but not with hpaio. I know how to fix it in scanimage, but one might nonetheless consider it a bug in libsane-hpaio, not in scanimage. I am using libsane- hpaio.so.1.0.0 from the openSUSE 15.3 repository. It goes wrong in function static void fetch_options(SANE_Device * device); In this function the call to sane_get_option_descriptor(device, i) returns null- values, i.e. SANE_Option_Descriptor stucts where name, title, desc, type, size and cap all are null values. These are inserted into all_options. I guess, the first NULL-entry in this array signals getopt_long the end of the options and all options after that are no longer recognized. It is easy, to fix this. After if (opt->type == SANE_TYPE_GROUP) continue; one may to add if (opt->name == NULL) continue; and it works with hpaio. As I said, one might as well argue, that this has to be fixed in libsane-hpaio, but I do not know enough about the SANE API and what it requires in this case. Regards Karl Just to give you an impression, here the output of all option processed in fetch_options for my scanner ScanJet Pro 4500 fn1: SANE_Option_Desctiptor: name: mode-group, title: Scan mode, desc: (null), type: 5, size: 0, cap: 0 SANE_Option_Desctiptor: name: mode, title: Scan mode, desc: Selects the scan mode (e.g., lineart, monochrome, or color)., type: 3, size: 32, cap: 5 SANE_Option_Desctiptor: name: resolution, title: Scan resolution, desc: Sets the resolution of the scanned image., type: 1, size: 4, cap: 5 SANE_Option_Desctiptor: name: source, title: Scan source, desc: Selects the scan source (such as a document-feeder)., type: 3, size: 32, cap: 5 SANE_Option_Desctiptor: name: advanced-group, title: Advanced, desc: (null), type: 5, size: 0, cap: 64 SANE_Option_Desctiptor: name: (null), title: (null), desc: (null), type: 0, size: 0, cap: 0 SANE_Option_Desctiptor: name: compression, title: Compression, desc: Selects the scanner compression method for faster scans, possibly at the expense of image quality., type: 3, size: 32, cap: 69 SANE_Option_Desctiptor: name: jpeg-quality, title: JPEG compression factor, desc: Sets the scanner JPEG compression factor. Larger numbers mean better compression, and smaller numbers mean better image quality., type: 1, size: 4, cap: 101 SANE_Option_Desctiptor: name: geometry-group, title: Geometry, desc: (null), type: 5, size: 0, cap: 64 SANE_Option_Desctiptor: name: tl-x, title: Top-left x, desc: Top-left x position of scan area., type: 2, size: 4, cap: 5 SANE_Option_Desctiptor: name: tl-y, title: Top-left y, desc: Top-left y position of scan area., type: 2, size: 4, cap: 5 SANE_Option_Desctiptor: name: br-x, title: Bottom-right x, desc: Bottom-right x position of scan area., type: 2, size: 4, cap: 5 SANE_Option_Desctiptor: name: br-y, title: Bottom-right y, desc: Bottom-right y position of scan area., type: 2, size: 4, cap: 5 SANE_Option_Desctiptor: name: multi-pick, title: Multi pick, desc: Select multipick option for ESCL protocal based devices, type: 1, size: 4, cap: 69 SANE_Option_Desctiptor: name: (null), title: (null), desc: (null), type: 0, size: 0, cap: 0