对于我的项目,我需要将Image sourse作为哈希码,如28F996F0.jpg。我正在尝试以下代码来获取此值但有一个错误 - 无法隐式转换类型' string'到' byte []'。
var Image= ImgresponseJson.query.pages[ImgfirstKey].thumbnail.source;
img.ImageData = string.Format("{0:X}.jpg", Image.GetHashCode());
我的Json对象类是
public class PoiImageAnswer
{
public int Width { set; get; }
public int Height { set; get; }
public byte[] ImageData { set; get; }
}
我无法理解如何将图片网址转换为哈希代码,如28F996F0.jpg
答案 0 :(得分:2)
public class Hash
{
public static string GetHash(string input)
{
HashAlgorithm hashAlgorithm = new SHA256CryptoServiceProvider();
byte[] byteValue = Encoding.UTF8.GetBytes(input);
byte[] byteHash = hashAlgorithm.ComputeHash(byteValue);
return Convert.ToBase64String(byteHash);
}
}
这是你想要的吗?
答案 1 :(得分:0)
您需要在PoiImageAnswer类中添加字符串属性以包含图像网址。 e.g。
public string ImageUrl { get; set; }
然后:
img.ImageUrl = string.Format("{0:X}.jpg", Image.GetHashCode());
编辑:
这将允许您将其放入byte []:
img.ImageData = new System.Text.UTF8Encoding().GetBytes(string.Format("{0:X}.jpg", Image.GetHashCode()));
答案 2 :(得分:0)
只需修改最后一个类属性:
public class PoiImageAnswer
{
public int Width { set; get; }
public int Height { set; get; }
public string ImageDataFilename { set; get; }
}
那么你的代码就可以了:
string ImageURL = "http://kajsdkajdg.com/abc.jpg";
var ImageURLHash = string.Format("{0:X}.jpg", ImageURL.GetHashCode());