Лазурные капли и миниатюры - PullRequest
0 голосов
/ 13 апреля 2011

У меня есть два изображения clear.jpg и thumbclear.jpg, второе - миниатюра I создать из первого со следующим кодом: Я пока не делаю изменения размера

  Bitmap bitmap = new Bitmap(File.InputStream);
  MemoryStream st = new MemoryStream();
  try
  {
     bitmap.Save(st, ImageFormat.Png);
     return st;
  }
  finally
  {
     bitmap.Dispose();
  }

поэтому я загружаю оба изображения в BLOB-объекты, получаю их URI и копирую / вставляю их в браузер. Первый http://127.0.0.1:10000/devstoreaccount1/media/e1a987d1-c731-4e26-9e6c-d7a63b62f661/clear.png работает нормально,

но второй http://127.0.0.1:10000/devstoreaccount1/media/b7ba6428-9db4-4282-8991-7a8198e7126f/thumbclear.png выдает мне следующую ошибку:

Изображение "http: //...thumbclear.png" не может быть отображено, поскольку оно содержит ошибки.

Так что я полагаю, что это как-то связано с растровым изображением. Любая помощь будет оценена.

** Edit Код, который я использую для сохранения BLOB-объекта

public static CloudBlob SaveFileToBlob(MemoryStream stream, string blobContainerName, string filename, string extension, string contentType, int fileSize)
        {
            if (stream != null)
            {
                CloudBlobContainer _BlobContainer = SessionHelper.GetBlobContainer(blobContainerName);
                var permissions = new BlobContainerPermissions();
                permissions.PublicAccess = BlobContainerPublicAccessType.Container;
                _BlobContainer.SetPermissions(permissions);

                Guid blobid = Guid.NewGuid();
                var blob = _BlobContainer.GetBlobReference(blobid.ToString() + "/" + filename);
                blob.UploadFromStream(stream);

                blob.Metadata["FileName"] = filename;
                blob.Metadata["Extension"] = extension;
                blob.Metadata["FileSize"] = fileSize.ToString();
                blob.SetMetadata();

                blob.Properties.ContentType = contentType;
                blob.SetProperties();

                return blob;
            }
            else
                return null;
        }

Ответы [ 2 ]

7 голосов
/ 14 апреля 2011

Решением было установить нулевую позицию потока перед загрузкой в ​​blob.

stream.Position = 0;
blob.UploadFromStream(stream);
0 голосов
/ 08 апреля 2012

Для первого образца:

  Bitmap bitmap = new Bitmap(File.InputStream);
  MemoryStream st = new MemoryStream();
  try
  {
     bitmap.Save(st, ImageFormat.Png);


//worked for me
        Response.ContentType = "image/png";
        st.WriteTo(Response.OutputStream);
//--


  }
  finally
  {
     bitmap.Dispose();
  }

И я сегодня нашел

Function Index() As FileContentResult
    Dim Resim = New WebClient().DownloadData("https://dosyalar.blob.core.windows.net/dosya/kartalisveris.gif")
    Return New FileContentResult(Resim, "image/png") '* With {.FileDownloadName = "Höbölö"}
End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...