Image Scanning on OS-X

Mac OSX specific forum
User avatar
TI-994A
Addict
Addict
Posts: 2512
Joined: Sat Feb 19, 2011 3:47 am
Location: Singapore
Contact:

Image Scanning on OS-X

Post by TI-994A »

Would anyone know how to invoke the TWAIN library functions in OS-X, to perform an image scan?

I understand that as of v10.2, OS-X has the TWAIN data source manager pre-installed. Could this be used directly, or would some other interface (eg. SANE) be required?

Any help will be much appreciated. :)
Texas Instruments TI-99/4A Home Computer: the first home computer with a 16bit processor, crammed into an 8bit architecture. Great hardware - Poor design - Wonderful BASIC engine. And it could talk too! Please visit my YouTube Channel :D
wilbert
PureBasic Expert
PureBasic Expert
Posts: 3870
Joined: Sun Aug 08, 2004 5:21 am
Location: Netherlands

Re: Image Scanning on OS-X

Post by wilbert »

Maybe you can use the IKScannerDeviceView class from the ImageKit framework.
Windows (x64)
Raspberry Pi OS (Arm64)
User avatar
TI-994A
Addict
Addict
Posts: 2512
Joined: Sat Feb 19, 2011 3:47 am
Location: Singapore
Contact:

Re: Image Scanning on OS-X

Post by TI-994A »

wilbert wrote:Maybe you can use the IKScannerDeviceView class from the ImageKit framework.
Hi wilbert. Thanks for your answer.

Would you happen have some example to help me get started? The closest I could find was this example by Shardik which uses the QTKit framework to capture an image from the default camera.

How would we select the scanner instead of the default input device? And would the implementation of the ImageKit functions be similar?

Could really use some help on this.

Thank you. :)
Texas Instruments TI-99/4A Home Computer: the first home computer with a 16bit processor, crammed into an 8bit architecture. Great hardware - Poor design - Wonderful BASIC engine. And it could talk too! Please visit my YouTube Channel :D
wilbert
PureBasic Expert
PureBasic Expert
Posts: 3870
Joined: Sun Aug 08, 2004 5:21 am
Location: Netherlands

Re: Image Scanning on OS-X

Post by wilbert »

Unfortunately it's hard for me to help out.
My scanner is so old that OSX Yosemite doesn't recognize it :(
I can't test anything.
Windows (x64)
Raspberry Pi OS (Arm64)
User avatar
TI-994A
Addict
Addict
Posts: 2512
Joined: Sat Feb 19, 2011 3:47 am
Location: Singapore
Contact:

Re: Image Scanning on OS-X

Post by TI-994A »

wilbert wrote:Unfortunately it's hard for me to help out.
My scanner is so old that OSX Yosemite doesn't recognize it :(
I can't test anything.
Understand perfectly.

If anyone else might have some idea, I'd be most grateful if you'd chime in.

While Objective-C may not be too bad in itself, trying to convert its NextStep OOP syntax to PureBasic can be a real nightmare.

For the time being, I'll be in the t&e dungeon. :lol:
Texas Instruments TI-99/4A Home Computer: the first home computer with a 16bit processor, crammed into an 8bit architecture. Great hardware - Poor design - Wonderful BASIC engine. And it could talk too! Please visit my YouTube Channel :D
User avatar
TI-994A
Addict
Addict
Posts: 2512
Joined: Sat Feb 19, 2011 3:47 am
Location: Singapore
Contact:

Re: Image Scanning on OS-X

Post by TI-994A »

Image

Still nowhere after ten head-banging days. :evil:

Danilo... Shardik... WilliamL... wilbert...

Image

I am now forced to use the dark forces to invoke the OSX gurus to help me! :lol:

Does anyone know what (in the unholy world of programming) this means:

Code: Select all

ICDeviceBrowser *mDeviceBrowser = [[ICDeviceBrowser alloc] init];
mDeviceBrowser.delegate = self;
mDeviceBrowser.browsedDeviceTypeMask = ICDeviceLocationTypeMaskLocal|ICDeviceLocationTypeMaskRemote|ICDeviceTypeMaskScanner;
[mDeviceBrowser start];

- (void)scannerDeviceDidBecomeAvailable:(ICScannerDevice*)scanner {
	[scanner requestOpenSession];
}

- (void)deviceBrowser:(ICDeviceBrowser*)browser didAddDevice:(ICDevice*)addedDevice moreComing:(BOOL)moreComing {
	if ( (addedDevice.type & ICDeviceTypeMaskScanner) == ICDeviceTypeScanner ) {
		[scannerView setScannerDevice:(ICScannerDevice*)addedDevice];
  }
}

- (void)didRemoveDevice:(ICDevice*)removedDevice {
	[removedDevice requestCloseSession];
}
And is there any mortal way to translate it into PureBasic and get it to work? :shock:

I only want to scan and save an image - that's all.

Image

(I feel a little bit like KCC)
Texas Instruments TI-99/4A Home Computer: the first home computer with a 16bit processor, crammed into an 8bit architecture. Great hardware - Poor design - Wonderful BASIC engine. And it could talk too! Please visit my YouTube Channel :D
User avatar
Shardik
Addict
Addict
Posts: 1989
Joined: Thu Apr 21, 2005 2:38 pm
Location: Germany

Re: Image Scanning on OS-X

Post by Shardik »

TI-994A wrote:Image

Still nowhere after ten head-banging days. :evil:
Me too since March 30th... :lol:

I have a similar problem as wilbert: I have 2 scanners connected to my iMac:
- HP ScanJet G3010
- Brother MFC-9420CN multi function color laser with scanner and fax unit

But both scanner devices can't be detected by MacOS X Snow Leopard or Mavericks using Apple's image capture app or the system settings when trying to add the scanners in "Printer & Scanner", although both devices work fine using the manufacturer's drivers and/or apps. But as long as MacOS isn't able to detect the scanners, it's unfortunately not possible to use the awesome classes IKDeviceBrowserView and IKScannerDeviceView... :evil:

With different tested cameras it's no problem and it's super easy to program an app to select the camera and list all its photos and infos similar to Apple's capture app.

Is your scanner detected by Apple's capture app? If not I don't see a way for you to realize a PB scanning app with PureBasic...
User avatar
TI-994A
Addict
Addict
Posts: 2512
Joined: Sat Feb 19, 2011 3:47 am
Location: Singapore
Contact:

Re: Image Scanning on OS-X

Post by TI-994A »

Shardik wrote:Me too since March 30th... :lol:
Dear! Oh Dear! :shock:
Shardik wrote:...as long as MacOS isn't able to detect the scanners, it's unfortunately not possible to use the awesome classes IKDeviceBrowserView and IKScannerDeviceView... :evil:

...

Is your scanner detected by Apple's capture app? If not I don't see a way for you to realize a PB scanning app with PureBasic...
This is a pretty peculiar pickle. My experience with Apple Mac's have always been a pleasant one, but for some reason, scanning has been the one exception (so far).

I've used it with Brother and Fuji-Xerox multi-function devices (printer/scanner/fax), and have always been able to print and scan with all of them, but only when connected directly through the USB port. Now that you've mentioned it, I checked, and they are indeed being detected by the system's Image Capture utility.

Although they are all network-capable devices, my MacBook has never been able to detect the scanners through network connections; only the printers. I had success, once, with a client's Brother DCP-9010CN device, which printed and scanned flawlessly through network connection, although I'm not aware if the Image Capture utility ever detected it. It could simply have been a proprietary driver that allowed it to work.

Would you happen to have some small code example that I could try, to see if these USB-connected scanners could be invoked and used from within PureBasic? I would love to give it a try if you do.

Thank you for responding to my pitiful post, and sorry I had to cast a spell on you - I've lifted it now! :lol:
Texas Instruments TI-99/4A Home Computer: the first home computer with a 16bit processor, crammed into an 8bit architecture. Great hardware - Poor design - Wonderful BASIC engine. And it could talk too! Please visit my YouTube Channel :D
User avatar
Shardik
Addict
Addict
Posts: 1989
Joined: Thu Apr 21, 2005 2:38 pm
Location: Germany

Re: Image Scanning on OS-X

Post by Shardik »

You may try the following simple PB example. Before starting the program your scanner has to be connected and switched on. If your scanner is not detected by this program, I fear you will be out of luck...

Code: Select all

EnableExplicit

ImportC "/System/Library/Frameworks/ImageCaptureCore.framework/ImageCaptureCore"
EndImport

ImportC "/System/Library/Frameworks/Quartz.framework/Quartz"
EndImport

Define DeviceBrowserView.I

OpenWindow(0, 270, 100, 200, 150, "Available scanners")
DeviceBrowserView = CocoaMessage(0, 0, "IKDeviceBrowserView new")

If DeviceBrowserView
  CocoaMessage(0, DeviceBrowserView, "setDisplaysLocalScanners:", #YES)
  CocoaMessage(0, DeviceBrowserView, "setDisplaysNetworkScanners:", #YES)
  CocoaMessage(0, DeviceBrowserView, "setDisplaysLocalCameras:", #NO)
  CocoaMessage(0, DeviceBrowserView, "setDisplaysNetworkCameras:", #NO)
  CocoaMessage(0, WindowID(0), "setContentView:", DeviceBrowserView)

  Repeat
  Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
The following code example should get you started:
- It detects the connection of a digital camera and displays thumbviews and infos of each photo on this camera just like Apple's image capture app does. When switching on a connected camera while running this code example, Apple's image camera app will pop up too and may be closed again. Even switching the camera off is detected (which will throw a memory access error on Snow Leopard but works fine on Mavericks). It's also possible to start this code example after connecting and switching on the camera (on Snow Leopard it might result in a memory access error: in that case start Apple's image capture app, close it and wait some moments before starting this code example again; this problem did not appear on Mavericks)
- It should detect the connection of a scanner and should display the scanner view. It should also detect a button click like clicking the scan button. Unfortunately I am unable to test this because my 2 scanning devices are not detected by MacOS as already described above...

Code: Select all

EnableExplicit

#DeviceBrowserWidth = 180

; ----- Defined in ICDevice.h
#ICDeviceLocationTypeMaskBluetooth = $00000800
#ICDeviceLocationTypeMaskBonjour   = $00000400
#ICDeviceLocationTypeMaskLocal     = $00000100
#ICDeviceLocationTypeMaskRemote    = $0000FE00
#ICDeviceLocationTypeMaskShared    = $00000200
#ICDeviceTypeMaskCamera            = $00000001
#ICDeviceTypeMaskScanner           = $00000002

ImportC ""
  class_addMethod(Class.I, Selector.I, *Callback, Types.P-ASCII)
  class_createInstance(Class.I, ExtraBytes.I)
  objc_allocateClassPair(ModelClass.I, NewClassName.P-ASCII, ExtraBytes.I)
  objc_lookUpClass(ClassName.P-ASCII)
  object_setClass(ObjectToModify.I, NewClass.I)
  objc_registerClassPair(NewClass.I)
  sel_registerName(MethodName.P-ASCII)
EndImport

ImportC "/System/Library/Frameworks/ImageCaptureCore.framework/ImageCaptureCore"
EndImport

ImportC "/System/Library/Frameworks/Quartz.framework/Quartz"
EndImport

Define CameraView.I
Define DelegateClass.I
Define DeviceArray.I
Define DeviceBrowser.I
Define DeviceView.I
Define SubclassedDeviceBrowser.I

Procedure AddView(WindowID.I, View.I, x.I, y.I, Width.I, Height.I)
  Protected ContentView.I
  Protected Frame.NSRect

  Frame\origin\x = x
  Frame\origin\y = y
  Frame\size\width = Width
  Frame\size\height = Height
  CocoaMessage(0, View, "initWithFrame:@", @Frame)
  ContentView = CocoaMessage(0, WindowID(WindowID), "contentView")

  If ContentView
    CocoaMessage(0, ContentView, "addSubview:", View)
  EndIf
EndProcedure 

ProcedureC DeviceAddedCallback(Object.I, Selector.I, DeviceBrowser.I,
  AddedDevice.I, MoreComing.I)
  Static DeviceView.I

  Protected CameraView.I
  Protected DeviceType.I = CocoaMessage(0, AddedDevice, "type")
  Protected ScannerView.I

  CocoaMessage(0, AddedDevice, "setDelegate:", AddedDevice)

  If MoreComing = #NO And DeviceView = 0
    DeviceView = CocoaMessage(0, 0, "IKDeviceBrowserView new")

    If DeviceView
      If DeviceType & #ICDeviceTypeMaskCamera
        ; ----- New camera was detected
        Debug "DeviceAddedCallback: new camera detected"
        SetWindowTitle(0, "Camera image viewer")
        AddView(0, DeviceView, 5, 5, #DeviceBrowserWidth, WindowHeight(0) - 10)
        CameraView = CocoaMessage(0, 0, "IKCameraDeviceView new")

        If CameraView
          AddView(0, CameraView, #DeviceBrowserWidth + 1, 5,
            WindowWidth(0) - #DeviceBrowserWidth - 10, WindowHeight(0) - 10)
          CocoaMessage(0, CameraView, "setCameraDevice:", AddedDevice)
        EndIf
      ElseIf DeviceType & #ICDeviceTypeMaskScanner
        ; ----- New scanner was detected
        Debug "DeviceAddedCallback: new scanner detected"
        SetWindowTitle(0, "Scanner")
        AddView(0, DeviceView, 5, 5, #DeviceBrowserWidth, WindowHeight(0) - 10)
        ScannerView = CocoaMessage(0, 0, "IKScannerDeviceView new")

        If ScannerView
          AddView(0, ScannerView, #DeviceBrowserWidth + 1, 5,
            WindowWidth(0) - #DeviceBrowserWidth - 10, WindowHeight(0) - 10)
          CocoaMessage(0, ScannerView, "setScannerDevice:", AddedDevice)
        EndIf
      Else
        Debug "DeviceAddedCallback: new other device detected"
      EndIf
    EndIf
  EndIf
EndProcedure

ProcedureC DeviceRemovedCallback(Object.I, Selector.I,
  DeviceBrowser.I, RemovedDevice.I, MoreGoing.I)
  CocoaMessage(0, RemovedDevice, "setDelegate:", 0)
  Debug "DeviceRemovedCallback: Device was removed"
EndProcedure

ProcedureC DeviceSelectedCallback(Object.I, Selector.I, Device.I)
  Debug "DeviceSelectedCallback: Button was pressed"
EndProcedure

OpenWindow(0, 90, 100, 900, 600, "",
  #PB_Window_SystemMenu | #PB_Window_SizeGadget)

DeviceBrowser = CocoaMessage(0, 0, "ICDeviceBrowser new")

If DeviceBrowser
  DelegateClass = objc_allocateClassPair(objc_lookUpClass("NSObject"),
    "PB_Delegate", 0)
  class_addMethod(DelegateClass,
    sel_registerName("deviceBrowser:didAddDevice:moreComing:"),
    @DeviceAddedCallback(), "v@:@@@")
  class_addMethod(DelegateClass,
    sel_registerName("deviceBrowser:didRemoveDevice:moreGoing:"),
    @DeviceRemovedCallback(), "v@:@@@")
  class_addMethod(DelegateClass,
    sel_registerName("deviceBrowser:requestsSelectDevice:"),
    @DeviceSelectedCallback(), "v@:@@")
  objc_registerClassPair(DelegateClass)
  CocoaMessage(0, DeviceBrowser, "setDelegate:",
    class_createInstance(DelegateClass, 0))

  CocoaMessage(0, DeviceBrowser, "setBrowsedDeviceTypeMask:",
    #ICDeviceLocationTypeMaskLocal | #ICDeviceLocationTypeMaskShared |
    #ICDeviceTypeMaskCamera | #ICDeviceTypeMaskScanner)
  CocoaMessage(0, DeviceBrowser, "start")

  Repeat
  Until WaitWindowEvent() = #PB_Event_CloseWindow

  CocoaMessage(0, DeviceBrowser, "stop")
  CocoaMessage(0, DeviceBrowser, "release")
EndIf
Update: I had to change 2 occurences of CameraView to ScannerView in the scanner part. Thank you for pinpointing the error, TI-994A.
Last edited by Shardik on Thu Apr 16, 2015 8:55 pm, edited 1 time in total.
User avatar
TI-994A
Addict
Addict
Posts: 2512
Joined: Sat Feb 19, 2011 3:47 am
Location: Singapore
Contact:

Re: Image Scanning on OS-X

Post by TI-994A »

Hi Shardik. There appears to be some progress. :idea:

After unsuccessfully trying to run both your samples, I decided to update Xcode on one of my MacBooks running Mavericks (v.10.9.2), which in turn required me to perform a minor OSX update to version 10.9.5.

Then, voila! Both your sample codes worked, and displayed not only the USB-connected scanners, but also the networked ones.

Then I noticed that the Image Capture utility also started listing the networked scanners as well.

Strange. :?

Upon further testing, I compiled both codes on this newly updated MacBook, and tried running them on two other MacBooks, one running Lion v.10.7.5, and another running Mavericks v.10.9.3. It worked on the Mavericks machine, but not on the Lion one.

I then tried compiling the codes on the MacBook running Lion, and it too worked on the two other Mavericks machines, but not on itself.

Could it be that these ImageKit browsers simply don't work on earlier versions of OSX for some reason? Even pure Objective-C developers have faced a similar problem, and have accredited it to some layout issue in the nib file:

StackOverflow: empty IKDeviceBrowserView

Perhaps you might have some input. :?:

In any case, now that the scanners can be successfully listed, how do we get them to scan? It would be great to display the scans within the application, but even getting them to scan to file would do as well.

I sincerely thank you for your tireless help thus far. :)
Texas Instruments TI-99/4A Home Computer: the first home computer with a 16bit processor, crammed into an 8bit architecture. Great hardware - Poor design - Wonderful BASIC engine. And it could talk too! Please visit my YouTube Channel :D
User avatar
TI-994A
Addict
Addict
Posts: 2512
Joined: Sat Feb 19, 2011 3:47 am
Location: Singapore
Contact:

Re: Image Scanning on OS-X

Post by TI-994A »

Shardik wrote:- It should detect the connection of a scanner and should display the scanner view. It should also detect a button click like clicking the scan button.
Hi Shardik. Just thought that I'd share some updates with you.

1. There was a typo in your example which was preventing the scanners from being displayed. When a scanner is detected, the CameraView was added instead of the ScannerView:

Code: Select all

ProcedureC DeviceAddedCallback(Object.I, Selector.I, DeviceBrowser.I,
                               AddedDevice.I, MoreComing.I)
  Static DeviceView.I
  
  Protected CameraView.I
  Protected DeviceType.I = CocoaMessage(0, AddedDevice, "type")
  Protected ScannerView.I
  
  CocoaMessage(0, AddedDevice, "setDelegate:", AddedDevice)
  
  If MoreComing = #NO And DeviceView = 0
    DeviceView = CocoaMessage(0, 0, "IKDeviceBrowserView new")
    
    If DeviceView
      If DeviceType & #ICDeviceTypeMaskCamera
        ; ----- New camera was detected
        Debug "DeviceAddedCallback: new camera detected"
        SetWindowTitle(0, "Camera image viewer")
        AddView(0, DeviceView, 5, 5, #DeviceBrowserWidth, WindowHeight(0) - 10)
        CameraView = CocoaMessage(0, 0, "IKCameraDeviceView new")
        
        If CameraView
          AddView(0, CameraView, #DeviceBrowserWidth + 1, 5,
                  WindowWidth(0) - #DeviceBrowserWidth - 10, WindowHeight(0) - 10)
          CocoaMessage(0, CameraView, "setCameraDevice:", AddedDevice)
        EndIf
      ElseIf DeviceType & #ICDeviceTypeMaskScanner
        ; ----- New scanner was detected
        Debug "DeviceAddedCallback: new scanner detected"
        SetWindowTitle(0, "Scanner")
        AddView(0, DeviceView, 5, 5, #DeviceBrowserWidth, WindowHeight(0) - 10)
        ScannerView = CocoaMessage(0, 0, "IKScannerDeviceView new")
        
        If ScannerView
          
          ;AddView(0, CameraView, #DeviceBrowserWidth + 1, 5,             ;<--- should be ScannerView
          AddView(0, ScannerView, #DeviceBrowserWidth + 1, 5,        
                  WindowWidth(0) - #DeviceBrowserWidth - 10, WindowHeight(0) - 10)
          
          ;CocoaMessage(0, CameraView, "setScannerDevice:", AddedDevice)  ;<--- should be ScannerView
          CocoaMessage(0, ScannerView, "setScannerDevice:", AddedDevice)
          
        EndIf
      Else
        Debug "DeviceAddedCallback: new other device detected"
      EndIf
    EndIf
  EndIf
EndProcedure
2. The didAddDevice and didRemoveDevice callbacks trigger correctly when the scanner is connected and disconnected. However, on OSX Mavericks v10.9.5, the scanner selector window is displayed, although the displayed scanners cannot be selected. The requestsSelectDevice callback does not seem to be firing.

On OSX Lion 10.7.5, once the scanner is detected, the scanning window opens up, complete with Flatbed/Document Feeder selector, Scan Size/Resolution, etc., and even the preview pane. However, when the Scan button is clicked, the program crashes with an IMA at this line:

Code: Select all

Until WaitWindowEvent() = #PB_Event_CloseWindow
Would you have any ideas? We're so close. :lol:
Texas Instruments TI-99/4A Home Computer: the first home computer with a 16bit processor, crammed into an 8bit architecture. Great hardware - Poor design - Wonderful BASIC engine. And it could talk too! Please visit my YouTube Channel :D
User avatar
Shardik
Addict
Addict
Posts: 1989
Joined: Thu Apr 21, 2005 2:38 pm
Location: Germany

Re: Image Scanning on OS-X

Post by Shardik »

TI-994A,

thank you for pinpointing my error in wrongly using CameraView instead of ScannerView in the scanner code part. That's a typical consequence of being not able to test with a scanner recognized by MacOS... :evil:

I did all it was possible for me by testing with a recognized camera instead of a scanner but unfortunately the ScannerView and CameraView are very different.

Last Sunday I tried again several hours to find and test drivers which are compatible with Apple's image capture app but unfortunately I still haven't been successful and was somewhat disappointed and frustrated... :cry:

So it's very difficult for me to help you any further. Perhaps you may give these hints a try:

- Try to also add a delegate for ScannerView:

Code: Select all

  CocoaMessage(0, ScannerView, "setDelegate:",
    class_createInstance(DelegateClass, 0))
- Define these 2 additional delegate methods for the ScannerView:

Code: Select all

  class_addMethod(DelegateClass,
    sel_registerName("scannerDeviceView:didEncounterError:"),
    @ErrorCallback(), "v@:@@")
  class_addMethod(DelegateClass,
    sel_registerName("scannerDeviceView:didScanToURL:fileData:error:"),
    @ScanCompleteCallback(), "v@:@@@")
with these 2 additional callbacks:

Code: Select all

ProcedureC ErrorCallback(ScannerView.I, *NSError)
  Debug "Error occurred during scan!"
EndProcedure

ProcedureC ScanCompleteCallback(ScannerView.I, *SaveURL, *FileData, *NSError)
  Debug "Scan was completed!"
EndProcedure
- If the download directory control is not displayed you should add

Code: Select all

CocoaMessage(0, ScannerView, "setDisplaysDownloadsDirectoryControl:", #YES)
- You may try to add a name for the document to scan although this may be a read only property and therefore may not work...

Code: Select all

CocoaMessage(0, ScannerView, "setDocumentName:$", @"MyScanDocumentName")
User avatar
TI-994A
Addict
Addict
Posts: 2512
Joined: Sat Feb 19, 2011 3:47 am
Location: Singapore
Contact:

Re: Image Scanning on OS-X

Post by TI-994A »

Shardik wrote:...consequence of being not able to test with a scanner recognized by MacOS... :evil:
Hi Shardik. I understand perfectly. Peripheral programming is hard enough without having to work blindly - simply impossible.

Thank you for these new suggestions; I'll give them a try and update you of my progress. Hopefully some good will come out of it for other members as well.

Much obliged! :)
Texas Instruments TI-99/4A Home Computer: the first home computer with a 16bit processor, crammed into an 8bit architecture. Great hardware - Poor design - Wonderful BASIC engine. And it could talk too! Please visit my YouTube Channel :D
User avatar
Shardik
Addict
Addict
Posts: 1989
Joined: Thu Apr 21, 2005 2:38 pm
Location: Germany

Re: Image Scanning on OS-X

Post by Shardik »

I was able to do my first successful scan with a Brother ADS-2100 using just my code example from above on Snow Leopard 10.6.8... :P

I have borrowed the Brother ADS-2100 from a colleague at my place of employment for this weekend and this is the 1st scanner of the 3 tried that was detected at once by Apple's Image capture app. After starting my code example from above I only had to click onto the "Scan" button and the scan was done perfectly and displayed at once and saved into my image folder.

I then tried the same on Mavericks and although the scanner is detected and selected (as Debug proves) there aren't any buttons displayed (empty scan window), so there is no possibility to start the scan... :x

But now I have the possibility to try different changes (without being "blind") as those I have already described above. I hope to find a solution soon also for Mavericks... :wink:
User avatar
TI-994A
Addict
Addict
Posts: 2512
Joined: Sat Feb 19, 2011 3:47 am
Location: Singapore
Contact:

Re: Image Scanning on OS-X

Post by TI-994A »

Shardik wrote:I was able to do my first successful scan with a Brother ADS-2100 using just my code example from above on Snow Leopard 10.6.8... :P

After starting my code example from above I only had to click onto the "Scan" button and the scan was done perfectly and displayed at once and saved into my image folder.

I then tried the same on Mavericks and although the scanner is detected and selected (as Debug proves) there aren't any buttons displayed (empty scan window), so there is no possibility to start the scan... :x
Wow! That's great news. I've not even been able to get the scan button to show on Lion or Mavericks.

But I've no doubt that it works, as my Objective-C example works flawlessly, complete with device selection, settings, preview, all the way to scan & save.

I look forward to hearing your good news very soon. I'm sure of it! :D
Texas Instruments TI-99/4A Home Computer: the first home computer with a 16bit processor, crammed into an 8bit architecture. Great hardware - Poor design - Wonderful BASIC engine. And it could talk too! Please visit my YouTube Channel :D
Post Reply