.Net 2.0 接收到的 tiff 文件图像是倒置的

.Net 2.0 the received tiff file images are inverted

我认为主要涉及网络的问题。

我用扫描仪创建了一个 tiff 文件并将其保存在硬盘上(到这里为止一切都很完美)。 我的下一步是以这种方式将文件上传到服务器(现有 JavaScript 代码):

    // -----------------------------------------------------------------
    // Upload the scanned document to the server and them save it to CM.
    // -----------------------------------------------------------------
    function SaveToDriveU()
    {
    try
    {
    document.body.style.cursor = "wait";
    objStream = new ActiveXObject("ADODB.Stream");
    objStream.Mode = 3; // read write
    objStream.Type = 1; // adTypeBinary
    objStream.Open();
    objStream.LoadFromFile(strScanedFileName);

    //var streamToSend = objStream.Read(objStream.Size);
    try
    {
    streamToSend = objStream.Read(-1);
    }
    catch(err)
    {
    alert(err.message);
    }

    window.setTimeout("SendXmlHttpRequest()",1000);

    //objStream.Close();

    }
    catch (err)
    {
    alert("???? ????? ?????? ????? ???????:" + err.message);
    }
    }

    //-------------------------------------------------------
    // Send XmlHttpRequest
    //-------------------------------------------------------
    function SendXmlHttpRequest()
    {
    try
    {
    objXMLhttp = new ActiveXObject("MSXML2.XMLHTTP");

    // Upload the scanned document via XMLHTTP request.
    objXMLhttp.Open("POST", "Uploader.aspx", true);
    objXMLhttp.setRequestHeader("Content-Length", objStream.Size);
    objXMLhttp.setRequestHeader("Content-type","image/tiff");

    objXMLhttp.onreadystatechange = function() // Check the upload request status.
    {
    if(objXMLhttp.readyState == 4)
    {
    if(objXMLhttp.responseText.substr(0,2) == "OK")
    {
    document.body.style.cursor = "default";
    mstrNewDocID = objXMLhttp.responseText.substr(2,(objXMLhttp.responseText.length - 2));

    document.all.NewDocID.value = mstrNewDocID;
    Form1.submit();
    }
    else
    {
    // If the upload failed, display the error message to the user.
    var strPageUrl = "RunScanner/FailedScanMsg.aspx?ErrorMsg=????? ????? ????? ?????";
    location.replace(strPageUrl);
    }
    // Delete the local scanned document from the disk.
    DeleteScanedFile();
    }
    }

    objXMLhttp.send(streamToSend);
    }
    catch (err)
    {
    alert("???? ????? ?????? ????? ???????:" + err.message);
    }
    }

现在问题分为两个方向:

  1. 托管 .Net 4.0 一切完美。

  2. 托管的 .Net 2.0 接收到的 tiff 文件图像是倒置的(这意味着如果图像是白底黑字,那么现在黑底白字)

    .Net 2.0 上的托管是因为旧代码仍然需要在客户端支持并且不能轻易升级。

以上是我能说出的唯一区别。

有人对此有更好的想法吗?

为什么会这样?如何解决?

谢谢

我的建议是尝试其他压缩方法。我认为这与数据的二进制传输有关