簡體   English   中英

如何在TWAIN用戶界面(DS)中修改分辨率(DPI)范圍

[英]How to modify resolution (DPI) Range in TWAIN User Interface (DS)

我想在Twain掃描儀用戶界面中設置DPI范圍。 看看下面的截圖。 DPI下降從50開始到600.如何將此限制從400到600。

在此輸入圖像描述

我嘗試了以下代碼,但它只設置了DPI,如果用戶從用戶界面更改,我的更改就會消失。

            TwFix32 f32 = new TwFix32();
            f32.FromFloat(400);//value of DPI 
            TwCapability capX = new TwCapability(TwCap.XResolution, f32.Whole);
            rc = dScap(appid, srcds, TwDG.Control, TwDAT.Capability, TwMSG.Set, capX);

            TwCapability capY= new TwCapability(TwCap.YResolution, f32T.Whole);
            rc = dScap(appid, srcds, TwDG.Control, TwDAT.Capability, TwMSG.Set, capY);

每個TWAIN源都實現自己的用戶界面。 TWAIN規范沒有提供更改此用戶界面的方法; 你只能顯示它。

您可以做的最好的事情是編寫自己的UI並顯示 UI 而不是要求TWAIN顯示其UI。 然后,您可以詢問設備以確定它支持的分辨率,並過濾掉任何不符合您需求的選項。 您可以在圖像采集之前立即以編程方式設置DPI(正如您已經在做的那樣)。

要更改圖像分辨率

 this._twain32.Capabilities.XResolution.Set((float)_item.Tag);
 this._twain32.Capabilities.YResolution.Set((float)_item.Tag);

要選擇平板式掃描儀,

if (this._twain32.Capabilities.Duplex.IsSupported(TwQC.GetCurrent) && this._twain32.Capabilities.Duplex.GetCurrent() != TwDX.None)
                {
                    if (this._twain32.Capabilities.FeederEnabled.IsSupported(TwQC.Set))
                    {
                        this._twain32.Capabilities.FeederEnabled.Set(false);

                        if (this._twain32.Capabilities.DuplexEnabled.IsSupported(TwQC.Set))
                        {
                            this._twain32.Capabilities.DuplexEnabled.Set(false);
                        }
                        this._twain32.Capabilities.XferCount.Set(1);
                    }
                }

要選擇ADF型掃描儀,

if (this._twain32.Capabilities.Duplex.IsSupported(TwQC.GetCurrent) && this._twain32.Capabilities.Duplex.GetCurrent() != TwDX.None)
                {
                    if (this._twain32.Capabilities.FeederEnabled.IsSupported(TwQC.Set))
                    {
                        this._twain32.Capabilities.FeederEnabled.Set(true);

                        if (this._twain32.Capabilities.DuplexEnabled.IsSupported(TwQC.Set))
                        {
                            this._twain32.Capabilities.DuplexEnabled.Set(true);
                        }
                        this._twain32.Capabilities.XferCount.Set(-1);
                    }
                }

上面的代碼使用Saraff.Twain(免費)dll作為參考。

我知道它的舊問題,但這可以幫助TWAIN新手。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM