簡體   English   中英

我怎么知道我的字節數組包含空白.tif文件

[英]how do i know my byte array containing blank .tif file or not

我有一個需要檢查我的掃描儀的應用程序是否生成空白tif文件。 在這里我分享我的示例代碼

 private void button1_Click(object sender, EventArgs e)
    {
        string path2 = @"F:\3333.tif";
        string path = @"F:\Document Scanned @ 1-blank.tif";
        System.Drawing.Image img = System.Drawing.Image.FromFile(path);
        byte[] bytes;
        using (MemoryStream ms = new MemoryStream())
        {
            img.Save(ms, System.Drawing.Imaging.ImageFormat.Tiff);
            bytes = ms.ToArray();
        }

        System.Drawing.Image img2 = System.Drawing.Image.FromFile(path2);
        byte[] bytes2;

        using (MemoryStream ms3 = new MemoryStream())
        {
            img2.Save(ms3, System.Drawing.Imaging.ImageFormat.Tiff);
            bytes2 = ms3.ToArray();
        }
        bool t = false;
        t = bytes.SequenceEqual(bytes2);
    }

注意:空白tif圖像僅出現白頁。

在上面的布爾總是返回true為什么? 我用兩個差異圖像解決了

本質上,您正在比較兩個TIF文件的字節(與使用Image的間接作用)。 這可能由於各種原因而失敗:

尺寸 :如果兩個圖像的高度和寬度不完全相同,則字節序列當然也會有所不同,即使它們都是完全白色的。

元數據 :據我所知,TIF格式包含各種元數據。 因此,即使兩個文件具有相同的像素,它們也可能不同。 我建議手動檢查所有像素值(例如Bitmap.GetPixel )並將它們與白色進行比較( Color.FromArgb(255,255,255,255) )。

噪音 :您確定空白文件始終是純白色(255,255,255)嗎? 也許某些隨機像素的值略有不同,例如(255,254,255) ...

暫無
暫無

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

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