2016-02-29 57 views
0

對於我的項目,我需要將圖像索引作爲像這樣的哈希碼28F996F0.jpg。我正在嘗試下面的代碼來獲取此值,但有一個錯誤 - 不能隱式地將類型'字符串'轉換爲'byte []'。不能隱式地使用C#將類型'字符串'轉換爲'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; } 
} 

我無法得到怎樣的圖像URL轉換哈希這樣28F996F0.jpg

+0

錯誤是告訴你到底是什麼問題..你試圖設置'的ImageData這類型的byte'到'string'還他們正確的語法是'public int Width {get;組; }' – MethodMan

+0

'Encoding.GetBytes'從字符串中創建一個字節數組......但我不是100%肯定的,這就是你真正想要做的。 – Haukinger

回答

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); 
    } 
} 

代碼是不是你想找的?

+0

我想直接在我的代碼中。就像我在這一行中提取圖像源var Image = ImgresponseJson.query.pages [ImgfirstKey] .thumbnail.source ;.所以基本上這是網址。然後在下一行我想直接做。是否有可能 –

0

您需要爲您的PoiImageAnswer類添加一個字符串屬性以包含圖像url。例如

public string ImageUrl { get; set; } 

然後:

img.ImageUrl = string.Format("{0:X}.jpg", Image.GetHashCode()); 

編輯:

這將允許你把它變成字節[]:

img.ImageData = new System.Text.UTF8Encoding().GetBytes(string.Format("{0:X}.jpg", Image.GetHashCode())); 
+0

謝謝你的工作。因爲ImageUrl是字符串格式。但如果我想保持它像字節格式,像我的代碼字節[] ImageData {set;得到;無論如何,這是可能的。 –

+0

它顯示錯誤「System.Text.Encoding.UTF8」是一個'屬性',但用於'類型' –

+0

對不起,忘了放在()中。 – Kevin

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()); 
相關問題