TWAIN

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
TWAIN
Original authorTWAIN Working Group
DeveloperTWAIN Working Group
Initial releaseFebruary 1992; 34 years ago (1992-02)
Stable release
2.5 (4 November 2021; 4 years ago (2021-11-04))
Repository
  • {{URL|example.com|optional display text}}Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    Operating systemLinux, macOS, Microsoft Windows
    Platformx86, x86-64, PowerPC
    StandardTWAIN
    TypeApplication programming interface
    LicenseLGPL (Data Source Manager only)
    Websitetwain.org

    TWAIN and TWAIN Direct are application programming interfaces (APIs) and communication protocols that regulate communication between software and digital imaging devices, such as image scanners and digital cameras. TWAIN is supported on Microsoft Windows, Linux and Mac OS X.[1]

    The three key elements of TWAIN are:[1]

    • Application software. For example, graphics software, a fax application or a word processor.
    • Source manager software. The source manager software is a software library provided by the TWAIN Working Group.
    • Device drivers (referred to as "Source software" in the specification document)

    Both the application and the device driver must support TWAIN for the interface to be successfully used.

    The first release was in 1992, and it was last updated in 2021.

    It was designed with the help of a number of companies from the computer industry, to try to establish a unified standard connection interface between computers and imaging devices.

    History

    [edit | edit source]

    The design of TWAIN began in January 1991. The TWAIN group was originally launched in 1992 by several members of the imaging industry, with the intention of standardizing communication between image handling software and hardware.[2] Review of the original TWAIN Developer's Toolkit occurred from April, 1991 through January, 1992.[3]

    On September 19, 2019, the TWAIN Working Group announced TWAIN Direct 1.0 which is a RESTful API version of the TWAIN specification.[4]

    Name origin

    [edit | edit source]

    The word TWAIN is not officially an acronym, but it is a backronym. The official website notes that "the word TWAIN is from Kipling's "The Ballad of East and West" — '...and never the twain shall meet...' — reflecting the difficulty, at the time, of connecting scanners and personal computers.

    It was up-cased to TWAIN to make it more distinctive. This led people to believe it was an acronym,[5] and then to a contest to come up with an expansion. None was selected, but the entry Technology Without an Interesting Name continues to haunt the standard.[6][7] For example, the Encyclopedia of Information Technology lists "Technology Without an Interesting Name" as the official meaning of TWAIN.[8][9]

    Release history of the TWAIN API[10]
    Version Release date Changes
    1.0 February 1992
    • Initial release
    1.5 May 1993
    • Performance enhancements
    1.6 5 February 1996
    • Page-length detection
    • Buffer transfer
    1.7 19 August 1997
    • Production scanning features
    1.8 22 October 1998
    • Production scanning features omitted from v1.7 of the TWAIN specification
    • Support for barcode and patch code control
    1.9 20 January 2000
    2.0 22 February 2008
    2.1 8 July 2009
    • Support for Windows 7 (32- and 64-bit)
    • Support for automatic color detection
    2.2 16 February 2012
    • Implemented self-certification and new mandatory features
    2.3 21 November 2013
    • Improved clarity and removed ambiguity
    2.4 15 December 2015
    • Improved clarity and removed ambiguity
    2.4.2 19 September 2019
    • Introduction of TWAIN Direct RESTful API
    2.5 4 November 2021
    • Added Image Addressing

    Objectives

    [edit | edit source]

    Objectives of the TWAIN Working Group and standard include:

    • Ensure image-handling software and hardware compatibility
    • Keep the specification current with the state of current software and hardware while maintaining backward compatibility
    • Provide multiple-platform support
    • Maintain and distribute a no-charge developer's toolkit
    • Ensure ease of implementation
    • Encourage widespread adoption
    • Open Source Data Source Manager
    • LGPL Open Source License
    • BSD Open Source Sample Application and Sample Data Source Application

    TWAIN provides support for:

    TWAIN Working Group

    [edit | edit source]

    Today the TWAIN standard, including the specification, data source manager and sample code, are maintained by the not-for-profit organization TWAIN Working Group.

    Board and associate members of the TWAIN Working Group include:[11]

    See also

    [edit | edit source]

    References

    [edit | edit source]
    1. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    2. ^ TWAIN Initiative
    3. ^ TWAIN docs index Archived September 27, 2011, at the Wayback Machine
    4. ^ TWAIN Direct RESTful API introduction
    5. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    6. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    7. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    8. ^ This article is based on material taken from TWAIN at the Free On-line Dictionary of Computing prior to 1 November 2008 and incorporated under the "relicensing" terms of the GFDL, version 1.3 or later.
    9. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    10. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    11. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).


    [edit | edit source]