2015-01-01 3 views
1

Я пишу библиотеку, которая использует веб-API для загрузки изображений. Мне нужна эта библиотека для использования на нескольких платформах, поэтому я выбираю переносимую библиотеку классов. Обычно я использовал бы тип Bitmap от System.Drawing, чтобы сохранить загруженное изображение в памяти, чтобы затем передать его методу и т. Д.C# Portable Class Libraries - Использование изображений

Однако PCL не имеют доступа к этому классу из-за своей независимой от платформы формы. Поэтому я думал просто загрузить изображения в массив byte[], который затем будет использоваться приложением, используя библиотеку. Будут ли какие-либо потенциальные проблемы с использованием байтового массива для хранения загруженных изображений?

+0

Я не вижу никаких потенциальных проблем с хранением изображений в 'byte []'. – Mayank

ответ

3

Я не верю, что существует какая-либо серьезная потенциальная проблема при использовании byte[] для хранения изображений.

Только одна вещь, о которой я могу думать, это некоторые потенциальные накладные расходы на преобразование изображений в byte[] и обратно.

Также я не могу придумать лучшего способа хранения изображений, кроме того, в byte[].

Плюс вы можете написать метод расширения для класса данных, который содержит byte[], чтобы вернуть Bitmap, где вы можете использовать его.

public static class DataClassExtensions 
{ 
    public static BitmapImage GetImage(this DataClass data) 
    { 
     if(data == null || data.ImageArray == null) return null; 

     using (var ms = new System.IO.MemoryStream(data.ImageArray)) 
     { 
       Bitmap image = (Bitmap)Image.FromStream(ms); 
       return image; 
     } 
    } 
} 

public class DataClass 
{ 
    public byte[] ImageArray { get; set; } 
} 
Смежные вопросы