Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Загрузка картинки 
:(
    Опции темы
andrey_pro
Дата 19.10.2009, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 21.9.2007

Репутация: нет
Всего: нет



У меня на форме есть контрол PictureBox в него я загружаю картинку которая лежит на диске.
Сам PictureBox имеет размеры 150х150, а сама картинка очень большая 4mb. Из-за большова размера загрузка тормозит.

написал код, при загрузке картинка уменьшается до нужного размера и занимает мало памяти:

Код

// Интерполяционное преобразование размера
        private Bitmap ConvertImage2(Bitmap inBmp)
        {
            int X_new;
            int Y_new;
            GetProporcion(inBmp.Width, inBmp.Height, out X_new, out Y_new);
            Bitmap outBmp = new Bitmap(X_new, Y_new, PixelFormat.Format24bppRgb);
            Graphics g = Graphics.FromImage(outBmp);
            g.InterpolationMode = InterpolationMode.HighQualityBicubic;
            g.DrawImage(inBmp, 0, 0, outBmp.Width, outBmp.Height);
            return outBmp;
        }


Сейчас нормально картинка обрезается, и занимает мало памяти (на форме у меня много таких картинок), НО загрузка всеравно долгая!

Есть ли простой способ реализовать загрузку картинки.

PM MAIL   Вверх
explorer
Дата 19.10.2009, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 104
Регистрация: 26.2.2008

Репутация: 1
Всего: 2



Загрузка долгая, потому что все еще обрабатывается большая картинка (перед тем, как она будет уменьшена). Можно попробовать отдельный поток на загрузку картинки. Будет работать быстрее, но потребует затрат сил и времени на организацию многопоточности. 

Если картинки все время загружаются одни и те же, то имеет смысл их импортировать в ресурсы, предварительно уменьшив с помощью любого редактора до нужного размера. 


--------------------
 
PM MAIL WWW ICQ   Вверх
andrey_pro
Дата 19.10.2009, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 21.9.2007

Репутация: нет
Всего: нет



Картинки и так загружаю в отдельном потоке, не в этом дело.

Вот если открыть простую папку и в ней сделать вид "Эскизы страниц", то картинки в этой папке грузятся намного быстрее. Я вот хочу организовать подобное на своей форме.
PM MAIL   Вверх
nmn
Дата 20.10.2009, 02:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 593
Регистрация: 26.11.2005

Репутация: 1
Всего: 1



Цитата(andrey_pro @ 19.10.2009,  21:32)
Картинки и так загружаю в отдельном потоке, не в этом дело.

Вот если открыть простую папку и в ней сделать вид "Эскизы страниц", то картинки в этой папке грузятся намного быстрее. Я вот хочу организовать подобное на своей форме.

Эскизы хранятся в Thumbs.db
PM Skype   Вверх
andrey_pro
Дата 20.10.2009, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 21.9.2007

Репутация: нет
Всего: нет



А как можно прочитать Thumbs.db?
PM MAIL   Вверх
nmn
Дата 20.10.2009, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 593
Регистрация: 26.11.2005

Репутация: 1
Всего: 1



PM Skype   Вверх
andrey_pro
Дата 3.11.2009, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 21.9.2007

Репутация: нет
Всего: нет



Ну а всетаки можно как нибудь быстрее картинки загружить не из Thumbs.db?
Может есть специальные библиотеки для этого?
PM MAIL   Вверх
nmn
Дата 3.11.2009, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 593
Регистрация: 26.11.2005

Репутация: 1
Всего: 1



Цитата(andrey_pro @ 3.11.2009,  10:11)
Ну а всетаки можно как нибудь быстрее картинки загружить не из Thumbs.db?
Может есть специальные библиотеки для этого?

заранее загружать, а потом просто показывать, ACDSee тоже не мгновенно загружает
PM Skype   Вверх
andrey_pro
Дата 3.11.2009, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 21.9.2007

Репутация: нет
Всего: нет



Дело в том что в ACDSee загружаются картинки гораздо быстрее чем у меня!

Хочу так же быстро!
PM MAIL   Вверх
andrey_pro
Дата 5.11.2009, 08:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 21.9.2007

Репутация: нет
Всего: нет



никто не знает? очень надо.
PM MAIL   Вверх
Zakonnic
Дата 5.11.2009, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 25.4.2006

Репутация: 2
Всего: 6



Расставьте брекпоинты и выделите самый долгоиграющий кусок. Запостите его сюда. 
Если в ACDSee картинка загружается быстро, значит она не такая уж большая.
--------------------
...и никогда не пишите в комментариях правду
PM MAIL ICQ   Вверх
nmn
Дата 5.11.2009, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 593
Регистрация: 26.11.2005

Репутация: 1
Всего: 1



Цитата(Zakonnic @ 5.11.2009,  15:01)
Расставьте брекпоинты и выделите самый долгоиграющий кусок. Запостите его сюда. 
Если в ACDSee картинка загружается быстро, значит она не такая уж большая.

лучше профайлером, в 2005 студии был встроенный
PM Skype   Вверх
andrey_pro
Дата 6.11.2009, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 21.9.2007

Репутация: нет
Всего: нет



Потестировал на время
загружал последовательно 10 рисунков по 4 мб.

на метод new Bitmap(filename) - 6 сек.

на ConvertImage2(Bitmap inBmp) - 4 сек.

итого получается 10 сек.

меня интересует как можно загружать быстро картики (new Bitmap(filename)) ?
PM MAIL   Вверх
Zakonnic
Дата 6.11.2009, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 25.4.2006

Репутация: 2
Всего: 6



Попробуй что-то вроде этого, должно быть чуть быстрее:
Код

Bitmap.FromStream(new FileStream(filename, FileMode.Open), true, false);

--------------------
...и никогда не пишите в комментариях правду
PM MAIL ICQ   Вверх
andrey_pro
Дата 11.11.2009, 08:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 21.9.2007

Репутация: нет
Всего: нет



Цитата(Zakonnic @  6.11.2009,  14:22 Найти цитируемый пост)
Попробуй что-то вроде этого, должно быть чуть быстрее:код C#1:Bitmap.FromStream(new FileStream(filename, FileMode.Open), true, false);


попробывал! просто супер быстро загружает картинки!

теперь бы еще сепер быстро сжать до нужного размера.
делаю через метод ConvertImage2(Bitmap inBmp) но он занимет 4 сек для 10 картинок. Это очень много, как можно быстрее???

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0508 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.