无法隐式转换类型'字符串'到' byte []'使用C#

时间:2016-02-29 16:25:43

标签: c# hashcode gethashcode imageurl

对于我的项目,我需要将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

3 个答案:

答案 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());