2014-06-03 3 views
0

Когда я запускаю следующий код, я вставляю 1,5 ГБ изображений jpg в список VideoType, но он использует 20 ГБ + Рам. Я подозреваю о некоторых дубликатах, но я не понимаю, как это сделать?Загрузка массовых изображений с использованием слишком большого количества бара

public class VideoType 
{ 
    public int VideoTypeId { get; set; } 
    public List<Bitmap> Bitmaps { get; set; } 
} 

КОД>

List<VideoType> VideoTypes = new List<VideoType>(); 

for (int i = 0; i < X; i++) 
    VideoTypes.Add(VideoTypeGet(VideoTypeId))); 



public static VideoType VideoTypeGet(int VideoTypeId) 
{ 
     VideoType VideoType = new VideoType(); 
     List<Bitmap> Bitmaps = new List<Bitmap>() 

     for (int i = 1; i < X; i++) 
      Bitmaps.Add((Bitmap)Bitmap.FromFile(@"X")); 

     VideoType.Bitmaps = Bitmaps; 
     return VideoType; 
} 

ответ

2

JPEG сжимается. Растровое изображение не сжимается. Итак ... вот ты. Изображения распаковываются и занимают больше памяти.

+0

любой трюк, как этого избежать? держать их как jpg или что-то еще? – Mert

+0

№ Чтобы показать их, они должны быть декомпрессированы. Вы можете избежать этого как можно дольше, но затем вы получите время обработки позже, прежде чем показывать. Умный - и время - программирование и компромиссы - единственный способ обойти это. У меня нет прецедента - поэтому я не могу рекомендовать архитектуру (и даже если - это выходит за рамки сайта Q & A). – TomTom

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