Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / WPF Сокращение потребления оперативной памяти приложением / 10 сообщений из 10, страница 1 из 1
24.10.2017, 07:48
    #39540807
Auratos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WPF Сокращение потребления оперативной памяти приложением
Добрый день. Создаю приложение - просмотрщик фотографий. Столкнулся с такой проблемой, что при загрузке изображений под каждый мегабайт изображения в оперативной памяти выделяется 10 Мб. Т.е. у меня папка с 60 картинками (занимает 25 Мб на диске) при открытии в приложении занимает 250 МБ.
Сам класс для хранения фотографий выглядит следующим образом:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
public class Photo : BaseModel
    {
        public Photo(string path, int n)
        {
            _path = path;
            _source = new Uri(path);
            _name = Path.GetFileNameWithoutExtension(path);
            _numb = n;
        }

        public override string ToString()
        {
            return _source.ToString();
        }

        private string _path;
        public string FullPath { get { return _path; } }

        private int _numb;
        public int PhotoNumber { get { return _numb; } set { _numb = value; } }

        private string _name;
        public string FileName { get { return _name; }}

        private Uri _source;
        public string Source { get { return _path; } }
    }



Подскажите, пожалуйста, можно ли как-то это оптимизировать и сократить количество потребляемой памяти? Т.к. по сути мне нужны только превью картинки, но при этом, чтобы я мог их масштабировать элементом Slider.
...
Рейтинг: 0 / 0
24.10.2017, 08:06
    #39540815
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WPF Сокращение потребления оперативной памяти приложением
Auratos,
В веб проектах добавляют колонку с превью 64х64 в базу.
...
Рейтинг: 0 / 0
24.10.2017, 08:15
    #39540817
Auratos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WPF Сокращение потребления оперативной памяти приложением
Petro123Auratos,
В веб проектах добавляют колонку с превью 64х64 в базу.
Ну если картинка будет 64x64, то при масштабировании слайдером я получу просто набор огромных пикселей, а не изображение.
Я написал про превью на случай, если можно как-то иначе работать с изображениями. Т.е. мне нужен просто просмотрщик без возможности дальнейшей обработки изображений. Но при этом нужна возможность масштаба :)
...
Рейтинг: 0 / 0
24.10.2017, 08:32
    #39540820
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WPF Сокращение потребления оперативной памяти приложением
Auratos,
Слайдер это что?
На клик мышкой нельзя перегрузить?
...
Рейтинг: 0 / 0
24.10.2017, 09:42
    #39540859
Auratos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WPF Сокращение потребления оперативной памяти приложением
Petro123Auratos,
Слайдер это что?
На клик мышкой нельзя перегрузить?
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<Slider Name="ZoomSlider" 
                    Margin="10,0,0,0" 
                    Orientation="Horizontal" 
                    Minimum="80" 
                    Maximum="320" 
                    Value="160" 
                    TickFrequency="80"
                    TickPlacement="BottomRight" 
                    SmallChange="5"
                    LargeChange="20" Foreground="Black" />
...
Рейтинг: 0 / 0
24.10.2017, 09:47
    #39540864
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WPF Сокращение потребления оперативной памяти приложением
1) Все 60 картинок одновременно выводятся на экран? Если нет - виртуализация
2) Сделать источник картинки таким образом, чтобы выдавал превьюшку или полную картинку в зависимости от текущего масштаба в слайдере.
...
Рейтинг: 0 / 0
24.10.2017, 10:46
    #39540897
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WPF Сокращение потребления оперативной памяти приложением
1) загружаешь картинку, ресайзишь, оригинал выкидываешь, тумбнейл показываешь. профит.
2) используйте виртуализацию, картинку грузишь только по требованию, на время загрузки делается недетерминированный прогресс бар по типу баранка или аналог.
картинки медицинского характера? :)
...
Рейтинг: 0 / 0
24.10.2017, 12:08
    #39540959
Auratos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WPF Сокращение потребления оперативной памяти приложением
Всем большое спасибо за советы. Решил в сторону виртуализации двигаться :)
...
Рейтинг: 0 / 0
24.10.2017, 12:11
    #39540961
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WPF Сокращение потребления оперативной памяти приложением
По хорошему, должны быть гоьовые библиотеки с кешированием на диск.
В андроиде их есть штуки 4.
...
Рейтинг: 0 / 0
24.10.2017, 12:12
    #39540966
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WPF Сокращение потребления оперативной памяти приложением
AuratosВсем большое спасибо за советы. Решил в сторону виртуализации двигаться :)
И full hd экран не забудь.
...
Рейтинг: 0 / 0
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / WPF Сокращение потребления оперативной памяти приложением / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]