我怎么知道我的字节数组是否包含空白 .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:33.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图像意味着白页。
上面的 bool t 总是 returns true 为什么?我使用了两个差异图像 解决了
本质上,您是在比较两个 TIF 文件的字节(间接使用 Image
)。这可能会因各种原因而失败:
维度:如果两个图像的高度和宽度不完全相同,那么字节序列当然会不同,即使它们都是全白的。
Metadata:据我所知,TIF格式包含各种元数据。因此,即使两个文件具有相同的像素,它们也可能不同。我建议手动检查所有像素值(例如 Bitmap.GetPixel
)并将它们与白色(Color.FromArgb(255,255,255,255)
)进行比较。
噪音:你确定空白文件总是纯白色的吗(255,255,255)
?也许一些随机像素的值略有不同,例如 (255,254,255)
...
我有一个应用程序需要检查我的扫描仪是否生成空白的 tif 文件。 在这里我分享我的示例代码
private void button1_Click(object sender, EventArgs e)
{
string path2 = @"F:33.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图像意味着白页。
上面的 bool t 总是 returns true 为什么?我使用了两个差异图像 解决了
本质上,您是在比较两个 TIF 文件的字节(间接使用 Image
)。这可能会因各种原因而失败:
维度:如果两个图像的高度和宽度不完全相同,那么字节序列当然会不同,即使它们都是全白的。
Metadata:据我所知,TIF格式包含各种元数据。因此,即使两个文件具有相同的像素,它们也可能不同。我建议手动检查所有像素值(例如 Bitmap.GetPixel
)并将它们与白色(Color.FromArgb(255,255,255,255)
)进行比较。
噪音:你确定空白文件总是纯白色的吗(255,255,255)
?也许一些随机像素的值略有不同,例如 (255,254,255)
...