Показать список изображений из лазурных файлов в mvc

У меня есть список файлов изображений из хранилища лазурных файлов, и я могу получить код ниже

CloudStorageAccount storageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("StorageConnectionString"));
CloudFileClient fileClient = storageAccount.CreateCloudFileClient();
CloudFileShare share = fileClient.GetShareReference(ConfigurationManager.AppSettings["ShareReference"]);
if (share.Exists())
{
    CloudFileDirectory rootDir = share.GetRootDirectoryReference();
    CloudFileDirectory sampleDir = rootDir.GetDirectoryReference("freedom/" + DocName);
    if (sampleDir.Exists())
    {
        IEnumerable<IListFileItem> fileList = sampleDir.ListFilesAndDirectories();
                   //
    }

}

Но я не могу найти способ, как я могу привязать это к модели, не загружая ее в проект, чтобы я мог отображать png в виде эскиза на мой взгляд.

Вот как я получаю весь список в списке файлов введите здесь описание изображения


person Beena Gupta    schedule 19.12.2019    source источник


Ответы (1)


Есть несколько способов добиться того же:

  • Лучший способ решить эту проблему — создать миниатюру фактического изображения при сохранении его в хранилище BLOB-объектов. Далее на экране вы можете загрузить миниатюру изображения в поток памяти и отобразить ее. Это сэкономит много сетевого трафика.

Проверьте эту ссылку для дополнительной справки:

https://github.com/MicrosoftDocs/azure-docs/blob/master/articles/event-grid/resize-images-on-storage-blob-upload-event.md

В качестве альтернативы вы можете написать свой собственный код создания миниатюры, как показано ниже:

 public static System.Drawing.Bitmap ResizeImage(System.Drawing.Image image, int width, int height) 
    { 
        //a holder for the result 
        Bitmap result = new Bitmap(width, height); 

        //use a graphics object to draw the resized image into the bitmap 
        using (Graphics graphics = Graphics.FromImage(result)) 
        { 
            //set the resize quality modes to high quality 
            graphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality; 
            graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; 
            graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; 
            //draw the image into the target bitmap 
            graphics.DrawImage(image, 0, 0, result.Width, result.Height); 
        } 

        //return the resulting bitmap 
        return result; 
    } 

Ссылка:

С# Создание эскиза (проблема низкого качества и большого размера)< /а>

  • Другой вариант — загрузить изображение в поток памяти и отобразить его в элементе управления, но это потребует большой пропускной способности сети.

Ссылка:

https://www.c-sharpcorner.com/article/mvc-display-image-from-byte-array/

Надеюсь, поможет.

person Mohit Verma    schedule 19.12.2019