我们从外部来源摄取大量图像。我想确保已经摄取的图像不会在后端重新摄取。为此,我考虑根据图像的流生成GUID,如下所示
File.ReadAllBytes()
或
public byte[] imageToByteArray(System.Drawing.Image imageIn)
{
MemoryStream ms = new MemoryStream();
imageIn.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);
return ms.ToArray();
}
enter code here
然后我想把它变成一个CLR(如果有必要的话),然后在SQL Server中保存带有图像元数据的GUID。不确定GUID的唯一性是多么准确。
任何输入?
由于
答案 0 :(得分:0)
正如@Mark Ransom建议的那样,你会混淆GUID和哈希。 GUID是应该是唯一的标识符。它独立于任何输入,只是您可以生成的东西。对于唯一输入,hash应该是唯一的。换句话说,在绝大多数情况下,相同的输入将具有相同的哈希值。
答案 1 :(得分:0)
Here's one solution用于“指纹字符串”算法。
正如帖子所说,即使文件格式不同,或者它的大小不同,您通常也希望相同的视觉效果映射到相同的字符串。所以这个算法将图像压缩成一个带有62色调色板的8x8缩略图(你可以用ImageMagick实现相同的功能)。
此转换为您提供64个值的图像,范围从1到62。
换句话说,短基数为62弦。