修复Memory传输模式+GROUP4情况下,BMP位图文件重复写头信息,导致图像移位的错误

This commit is contained in:
gb 2023-08-03 09:09:58 +08:00
parent a6b0214014
commit de2036ea2c
1 changed files with 4 additions and 5 deletions

View File

@ -564,16 +564,15 @@ void scanned_img::do_result(bool ok, twain_xfer xfer)
xfer == TWAIN_XFER_Memory) xfer == TWAIN_XFER_Memory)
{ {
// convert to black-white ... // convert to black-white ...
std::string head(file_header(SANE_IMAGE_TYPE_BMP, (float)dpi_, TWAIN_XFER_File)); size_t size = data_->bytes();
size_t size = head.length();
mapping_buf* buf = new mapping_buf(); mapping_buf* buf = new mapping_buf();
std::wstring file(file_ + L".tmp"); std::wstring file(file_ + L".tmp");
unsigned long long off = 0; unsigned long long off = 0;
if (buf->allocate(file.c_str(), size + data_->bytes(), true) && if (buf->allocate(file.c_str(), size, true) &&
buf->save(head.c_str(), &size, off)) buf->save(0, data_))
{ {
if (buf->save(size, data_)) // if (buf->save(size, data_))
{ {
SANE_ImageFormatConvert conv; SANE_ImageFormatConvert conv;
std::string sf(local_trans::u2a(file.c_str())); std::string sf(local_trans::u2a(file.c_str()));