问题标签 [twaindotnet]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - Twain 扫描去除紫色边缘
我正在使用Twain Dot Net扫描相对简单的图像,最终我使用Emgu CV来查找边缘。这是我扫描的东西的屏幕截图:
但是,我调整了图像检测中的阈值,我得到了完全相同的边缘检测,但它不是正确的位置(它太宽 - 我扫描的东西是灰色的)。如果我像这样扫描黑色图像,我会检测到我期望的边缘:
在这两种情况下,您都可以看到紫色边缘(真实物体上不存在)。
我的感觉是,这个紫色边缘导致边缘检测对第一个边缘检测做错事,因为它匹配紫色的位置,但对于黑色它匹配黑色的位置(因为黑色的强度高于紫色但灰色的强度不是)。我认为这可以解释为什么调整 emgu 中的阈值没有任何区别。
所以,我的问题是——我可以设置一个 twain 设置来移除这个紫色,还是它是扫描仪的一个功能(我在 Flickr 上发现了这个指向硬件的有趣讨论,但我已经用三种不同的扫描仪进行了尝试(两个相同的模型,一个完全不同的)并且它们都做同样的)?
这是我用来扫描图像的代码:
c# - 使用 TwainDotNET 时如何检测棱镜和非棱镜 64 位应用程序之间的差异
我正在尝试将https://code.google.com/p/twaindotnet/用于我们在 Windows 2008 终端服务器(64 位)上运行的内部应用程序。我发现很少有人评论这个库不能在 64 位机器上本地使用,并且它(以及所有使用它的应用程序)应该针对 x86 平台进行编译。(我正在使用 VS2010)但是,问题是:
- 示例应用程序 - TestAppWpf(来自 TwainDotNET 包) - 在(我们的)服务器上正常工作时,针对任何 CPU 进行编译(因此在服务器上以 64 位模式运行)。
- 我的(即使是最简单的示例)使用 Prism 和 Unity/MEF 的应用程序总是崩溃,异常是“尝试加载格式不正确的程序(HRESULT 的异常:0x8007000B)”
[使用的代码总是相同的:
catch 部分目前只是愚蠢的“转储”......当即将调用 twain_32.dll(DsmParent 函数)库时,首先发生异常
]
- 我也尝试重新编译整个项目和库以针对 x86,但仍然有类似的结果 - TestAppWpf 有效而我的应用程序无效。
- 无需提及,在我的开发机器(32 位)上,一切都像魅力一样。
我完全迷失了试图找到示例应用程序和我自己的应用程序(都在 64 位环境中运行)之间的差异。
任何建议/提示/或技巧将不胜感激。
马丁·F。
c# - 虚拟扫描仪 (TWAIN) 在 C# (WPF) 中不起作用
它是关于 TWAINdotNet 库的。我花了过去 24 小时尝试在 C#/WPF/VS2010 中进行基本的虚拟扫描仪实验。我已经从http://sourceforge.net/projects/twain-samples/files/下载并安装了虚拟扫描仪驱动程序,它在可用的 TWAIN 数据源列表中显示得很好。有趣的是,此页面上提供的示例应用程序也可以与此驱动程序完美配合。仅当我尝试通过 C#/WPF 使用它时才会出现此问题。
具体来说,调用DsUserInterface
usingMessage.EnableDS
失败,天知道是什么原因。无论我是否要求它显示 UI,它在所有情况下都会失败。同样DsImageLayout
,在尝试设置扫描区域时调用也会导致失败。最后但并非最不重要的一点是,尝试将测量单位设置为英寸(或其他)也不会生效。调用不会失败,但之前的值保持不变。
这是代码,以防我可能做错了什么:
twain - 不使用 API UI 菜单设置默认 TWAIN 数据源
使用twaindotnet
C# 中的库,我想知道是否有办法使用该库设置默认数据源。
作为一个微弱的尝试,我尝试向类添加一个SetDefault
方法,就像这样DataSource
twaindonet
像这样从DataSourceManage
类中调用
但是当我尝试使用时SetDefault
,Twain32Native.DsmIdentity
总是会导致Failure
被退回。
我基本上是从TWAIN 示例数据源和应用程序中复制SetDefault
的setDefaultDataSource
方法
任何帮助将不胜感激。
vb.net - twain ocr 函数返回空字节
我有以下代码:
我面临的问题是sbytes
字节数组总是被设置为空,尽管缓冲区中的索引是正确的,并且路径和 dll 实现得很好,但是转换为字节数组没有成功,我没有得到任何异常,但字节的长度为 0
知道如何解决这个问题吗?
vb.net - 使用 TWAINDotNet 设置扫描仪 dpi:设置 dpi >1200 失败
我正在尝试使用 TWAINDotNet API 来控制 Epson 扫描仪。我几乎一切正常,但我无法正确设置 dpi。
如果我将 API 设置为 300、600 甚至 1199 dpi,扫描仪将按预期工作。不幸的是,当我尝试将 dpi 设置为 1200 或更高时,我收到一个 TWAINException 指示“TwainDotNet.TwainNative.ConditionCode.CapabilitySequenceError”。扫描仪当然能够达到 1200pi(甚至是高 dpi 值)。
我正在使用来自 VB.Net 2010 的 TWAINDotNet
我感谢任何评论。
area - TwainDotNet 特定区域扫描
在我的应用程序中,我正在使用 TwainDotNet 库,并且正在从平板扫描特定区域。
但结果当扫描开始并且扫描源是 Twain 驱动程序时,它会扫描整页,但如果我选择 WIA 驱动程序,我会得到专门选择的区域。主要思想是应用程序在第一次扫描整页时启动,下次它只扫描页面的特定高度。
c# - Windows XP 下的吐温消息循环
我正在开发一个 Google Chrome Twain 插件,实际上它几乎完成了。唯一的主要问题仍然存在:该插件在 Windows XP 下无法运行。这不是我们想要的。
该插件使用 Chrome Native Messaging 在 Chrome 和单独的扫描进程之间建立通信,并使用 TwainDotNet与 TWAIN 接口。
不幸的是,没有什么可以阻止 TWAIN 驱动程序向 stdout/stderr 发送任何文本,所以我被迫使用两阶段解决方案:本机消息传递主机的第一个进程通过 stdin/stdout 与 Chrome 通信,第二个进程与第一个通过匿名管道并真正完成工作(即处理消息和与 TWAIN 的接口)。
不知何故,第二个过程的管道成为 TWAIN 的问题。经过一些实验,我发现如果我在第二个进程中不创建任何管道,或者如果我创建了管道但不使用它们 - 即我不读取或写入管道,一切都会好起来的。但是,如果管道上只有一次读取或写入,则任何使用 TWAIN 的操作都会挂起,就好像线程中没有运行消息循环一样。
因此,我认为使用管道,我的意思是在管道上执行读写操作,以某种方式破坏了 TWAIN 正常工作所需的消息循环。
我是 Windows 消息处理的新手,所以
- 当我使用匿名管道时,我没有完全理解应用程序中发生了什么,并且
- 使用管道如何干扰 TWAIN,以及
- 为什么问题只出现在 Windows XP 下。
我唯一的想法是匿名管道异步IO是通过windows消息实现的。因此,我将感谢有助于解决此问题的信息和/或建议。
插件源可以在我的 GitHub 存储库中找到(解决方案 TwainScan): https ://github.com/ballamuth/Chrome4Net/tree/master/examples
c# - Twain 驱动程序 - Windows OS x64 中的 TWAINDSM.DLL 错误
我们开发了一个应用程序来控制和扫描任何文件,如图像等,作为一个 C# Winform 应用程序,它可以在 x86 OS 平台下成功运行。在应用程序中,我们使用 C# twain 类向扫描仪发送命令,这样我们就可以实现我们想要的。众所周知,Twain_32.dll文件用于运行应用程序并进行无故障扫描。
我的问题是,在 x64 操作系统平台上,我们无法运行应用程序并得到一个名为BadImageFormatException的错误,它试图告诉我们这一切都与操作系统类型有关!所以这个错误指出我尝试在不兼容的操作系统类型下运行应用程序。
我已经体验过 32 位 twain dll 在 x64 系统下的工作,但我遇到了另一个问题。我们在一个父表单下运行我们的所有应用程序,即 MDI 父表单。所以我想用作扫描目的的表格将是一个 MDI 客户端表格。好吧,当我的程序编译为ANYCPU时,CLR将在 Windows x64 操作系统中将其作为 x64 位应用程序运行。这就是为什么,即使我在 x64 Win OS 中将我的扫描表单编译为 x86 平台目标,我也无法运行该应用程序。
到这里,我希望你们都明白我的意思!!!
作为解决方案,我尝试安装Twack64安装文件以获取TWAINDSM.dll文件并在 x86 和 x64 操作系统机器上运行我的应用程序。此外,在我的自定义 twain 源项目中,我更改为 dll 导入属性TWAINDSM.dll而不是Twain_32.dll,但它没有成功。
所以我在这里遗漏了什么或者 Twain C# 应用程序无法将TWAINDSM.dll识别为 twain dll?我卡在这一步,不能再往前走了!!!拉我的头发3-4天!!!:(
快速的手将对我有很大的帮助!期待您的回音!!!