gpt4 book ai didi

c++ - 如何在 C++ 中使用 TWAIN 设置扫描的 DPI

转载 作者:太空狗 更新时间:2023-10-29 20:32:46 26 4
gpt4 key购买 nike

我在 C++ 中使用 TWAIN,我试图手动设置 DPI,这样用户就不会显示扫描对话框,而是页面只使用设置的默认值进行扫描并为他们存储。我需要手动设置 DPI,但我似乎无法让它工作。我已尝试使用 ICAP_XRESOLUTION 和 ICAP_YRESOLUTION 设置功能。当我查看图像的信息时,无论我使用 ICAP 将其设置为什么,它总是显示相同的分辨率。是否有另一种方法来设置扫描图像的分辨率,或者是否只需要执行一个我在文档中找不到的额外步骤?

谢谢

最佳答案

我使用 ICAP_XRESOLUTION 和 ICAP_YRESOLUTION 为扫描仪设置扫描分辨率,它至少适用于许多 HP 扫描仪。

代码片段:

float x_res = 1200;
cap.Cap = ICAP_XRESOLUTION;
cap.ConType = TWON_ONEVALUE;
cap.hContainer = GlobalAlloc(GHND, sizeof(TW_ONEVALUE));
if(cap.hContainer)
{
val_p = (pTW_ONEVALUE)GlobalLock(cap.hContainer);
val_p->ItemType = TWTY_FIX32;
TW_FIX32 fix32_val = FloatToFIX32(x_res);
val_p->Item = *((pTW_INT32) &fix32_val);
GlobalUnlock(cap.hContainer);
ret_code = SetCapability(cap);
GlobalFree(cap.hContainer);
}

TW_FIX32 FloatToFIX32(float i_float)
{
TW_FIX32 Fix32_value;
TW_INT32 value = (TW_INT32) (i_float * 65536.0 + 0.5);
Fix32_value.Whole = LOWORD(value >> 16);
Fix32_value.Frac = LOWORD(value & 0x0000ffffL);
return Fix32_value;
}

该值应为 TW_FIX32 类型,这是一种由 twain 定义的浮点格式(奇怪但真实)。

希望对你有用!

关于c++ - 如何在 C++ 中使用 TWAIN 设置扫描的 DPI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1012642/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com