2016-02-29 4 views
0

Для моего проекта мне нужно получить изображение как хеш-код, подобный этому 28F996F0.jpg. Я пытаюсь использовать следующий код, чтобы получить это значение, но с одной ошибкой. Невозможно неявно преобразовать тип 'string' в 'byte []'.Невозможно неявно преобразовать тип 'string' в 'byte []', используя C#

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 ;. поэтому в основном это url.then в следующей строке я хочу сделать это напрямую. Возможно ли это –

0

Вам нужно добавить свойство string в свой класс PoiImageAnswer, чтобы содержать URL-адрес изображения. например

public string ImageUrl { get; set; } 

Тогда:

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

EDIT:

Это позволит вам поместить его в байт []:

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

Спасибо, что это работает. поскольку ImageUrl находится в строчном формате. Но если я хочу сохранить его в байтовом формате, например, мой байт кода [] ImageData {set; получить; } это возможно в любом случае. –

+0

показывает ошибку 'System.Text.Encoding.UTF8' является 'свойством', но используется как 'type' –

+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()); 

 Смежные вопросы

  • Нет связанных вопросов^_^