преобразовать строку в изображение - PullRequest
0 голосов
/ 26 марта 2012

Я пытаюсь преобразовать мою строку в 173x173 png-изображение. Это как-то возможно, и если да, то как? Мне нужен URL, чтобы потом использовать его на моей заднице.

строка может содержать буквы, цифры и "-./"

нашел что-то подобное, но, похоже, совсем не работает:

 private Uri ToImage()
    {
        string imageString = "";

        byte[] imageBytes = Convert.FromBase64String(imageString);
        System.Text.Encoding.UTF8.GetBytes(imageString.ToCharArray(), 0, imageString.ToCharArray().Length - 1,
        imageBytes, 0);

        System.IO.MemoryStream ms = new System.IO.MemoryStream(imageBytes, 0, imageBytes.Length);

        ms.Write(imageBytes, 0, imageBytes.Length);

        BitmapImage bitmapImage = new BitmapImage();
        bitmapImage.SetSource(ms);
        return bitmapImage.UriSource;
    }

Ответы [ 2 ]

1 голос
/ 26 марта 2012

Для загрузки изображения из строки base64 вы можете использовать его:

Image img;
byte[] fileBytes = Convert.FromBase64String(imageString);
using(MemoryStream ms = new MemoryStream())
{
    ms.Write(fileBytes, 0, fileBytes.Length);
    img = Image.FromStream(ms);
}

Вы можете сохранить это изображение на сервере и отправить URL-адрес файла клиенту или отправить изображение "на лету"":

Response.ContentType = "image/png";
img.Save(Response.OutputStream, ImageFormat.Png);

В этом случае URL-адрес изображения - это URL-адрес страницы, например:

img src="getBacktile.aspx?id=XXX"
0 голосов
/ 22 августа 2012

Просто удалите / закомментируйте код строки public abstract int GetBytes (char [] chars, int charIndex, int charCount, byte [] bytes, int byteIndex);

System.Text.Encoding.UTF8.GetBytes(imageString.ToCharArray(), 0, imageString.ToCharArray().Length - 1,
        imageBytes, 0);

Это работает на меня.

И еще, конвертируйте, используя строчный код

Image img;
byte[] fileBytes = Convert.FromBase64String(imageString);
using(MemoryStream ms = new MemoryStream())
{
    ms.Write(fileBytes, 0, fileBytes.Length);
    img = Image.FromStream(ms);
}

не работает. Поскольку в Windows Phone 7 не предусмотрен метод Image.FromStream (мс) .

...