0

我正在尝试在我的 java 应用程序中设置 Morena 7,但我无法从我的代码中配置我的扫描仪,它忽略了我设置的设置。

即使我的扫描仪适用于他们提供的每个支持的设置的示例项目。我已经在网上搜索了解释,但我发现的文档很少甚至没有。

这是我用来扫描的代码,它与教程文档中给出的示例相同:

    public void scan() throws Exception {
        Manager manager = Manager.getInstance();
        List devices = manager.listDevices();
        if(devices.isEmpty()) {
            System.out.println("No scanners detected");
            return;
        }
        Device device = (Device) devices.get(0);

        if (device instanceof Scanner)  {
            Scanner scanner = (Scanner) device;
            scanner.setMode(Scanner.RGB_8);
            scanner.setResolution(75);
            scanner.setFrame(100, 100, 500, 500);

            BufferedImage bimage = SynchronousHelper.scanImage(scanner);

            // Do the necessary processes with bimage  

            manager.close();
        }
        else {
            System.out.println("Please Connect A Scanner");
        }
    }

当我运行此代码时,我会返回一个图像,但使用来自打印机的默认值,颜色、分辨率和扫描区域(帧)等所有设置都将被忽略。

4

1 回答 1

0

首先,我认为一个原因可能是 Morena 7 总是将扫描仪数据假脱机到文件中。在写入文件之前,您无法访问此扫描仪数据(很遗憾)。因此,如果您想扫描双层图像,您将获得带有灰度的 jpg 图像。Morena 在 Mac OSX 上将扫描仪数据保存为 jpg,在 Windows 上保存为 bmp。

您应该检查 Morena 7 创建的临时文件。假设您使用 Moran 示例中的 SynchronousHelper 类,您可以编辑仅使用 ImageIO 加载临时文件的 scanImage 方法。

如果我检查此临时文件(在 Mac OSX 上),则考虑所有设置值作为分辨率和颜色模式。可能您的扫描仪不支持某些东西?或者 Morena 在保存图像时做错了什么。

并检查系统错误输出。应该如下所示,您可以看到我将分辨率设置为 400dpi 并将颜色模式设置为 bilevel(ICScannerPixelDataTypeBW 和 bitDepth 1)。

Functional unit: ICScannerFunctionalUnitFlatbed <0x7fefe850f4e0>:
  pixelDataType                            : ICScannerPixelDataTypeBW
  supportedBitDepths                       : <NSMutableIndexSet: 0x7fefe850f4b0>[number of indexes: 2 (in 2 ranges), indexes: (1 8)]
  bitDepth                                 : 1
  supportedDocumentTypes                   : <NSMutableIndexSet: 0x7fefede9a9f0>[number of indexes: 6 (in 2 ranges), indexes: (1-5 10)]
  documentType                             : 1
  physicalSize                             : [width = 8.50 inches, height = 14.00 inches]
  measurementUnit                          : 0
  supportedResolutions                     : <NSMutableIndexSet: 0x7fefedee4390>[number of indexes: 7 (in 7 ranges), indexes: (100 150 200 300 400 600 1200)]
  preferredResolutions                     : <NSMutableIndexSet: 0x7fefedee4390>[number of indexes: 7 (in 7 ranges), indexes: (100 150 200 300 400 600 1200)]
  resolution                               : 400
  overviewResolution                       : 150
  supportedScaleFactors                    : <NSMutableIndexSet: 0x7fefedec3dd0>[number of indexes: 1 (in 1 ranges), indexes: (100)]
  preferredScaleFactors                    : <NSMutableIndexSet: 0x7fefedec3dd0>[number of indexes: 1 (in 1 ranges), indexes: (100)]
  scaleFactor                              : 100
  acceptsThresholdForBlackAndWhiteScanning : NO
  usesThresholdForBlackAndWhiteScanning    : NO
  thresholdForBlackAndWhiteScanning        : 0
  templates                                : (null)
  vendorFeatures                           : (null)
  state                                    : 0x00000001
于 2019-08-20T11:06:11.697 回答