Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.10.10;
Скачать: [xml.tar.bz2];

Вниз

Згарузка графики.   Найти похожие ветки 

 
Wood   (2004-09-24 06:16) [0]

Good day!
Помогите, пожалуйста.
Пытаюсь сделать прогу, типа фотальбома.
Вопрос в чем: как ускорить загрузку JPEG"ов большого формата, например, более 2000 п. в превью небольшого размера, например 60х60.
К примеру, переменная Mjpeg: TJPEGImage, mybit: array [0..100] of TBitmap;
 {    Mjpeg.LoadFromFile("name.jpg");
      with TJPEGImage(Mjpeg) do
       begin
        Performance := TJPEGPerformance(jpBestSpeed);
          Scale := TJPEGScale(jsEighth);
          Smoothing:=true;
       end;
   //  mybit[i].Canvas.StretchDraw(rect(0,0,60,60),Mjpeg);
     except
     Mjpeg.Free;
     Application.Terminate;
      exit;
     end; }
При большом количестве файлов в каталоге все происходит долго.
Есть ли способ улучшить производительность? И способ вывода
какой-нибудь индикации процесса?
Спасибо.


 
КаПиБаРа ©   (2004-09-24 07:32) [1]

1. В except Free не делаютъ. Помести его в finally
2. При возникновении ошибки делать Application.Terminate как то жестоко :)
3. Посмотри как реализован алгоритм в ACDC.  Загрузка изображений в отдельном потооке. Если на экране должны быть отображены изображения которые не загружены вместо них выводится пустое изображения и изменяется порядок загрузки. В первую очередь загружаются изображения которые д.б. отображены. Затем продолжается закрузка остальных изображений. Прогрес загрузки показать просто кол-во загруженных изображений / общее кол-во изображений.

======================================
Прежде чем о чем-то мечтать - подумай,
а вдруг сбудется.
======================================


 
Wood   (2004-09-24 08:29) [2]

>КаПиБаРа[1]
Спасибо.
На счет Free и Finally - это я, вообщем.
Смысл загрузки, я понял, создать поток? У меня замысел, сначала загрузить все JPEG, а потом их показывать, т.е. важна скорость загрузки их в переменные, типа Mjpeg см.[0] и, затем, перевода в Bitmap, или в(на) какой-нибудь Image, допустим. Приведенные, выше методы и свойства для JPEG не очень ускоряют процесс.


 
[lamer]Barmaglot ©   (2004-09-24 09:17) [3]

Не выдумывай велосипед, в JPeg обычно сохраняется готовый предпросмотр, смотри бинарный формат файлов здесь: www.wotsit.org правда реализовывать придется ручками :-)


 
Wood   (2004-09-24 09:35) [4]

Barmaglot [3]
Спасибо, посмотрю. Хотя велосипед тут не причем. Небольшие файлы загружаются быстро.


 
TUser ©   (2004-09-24 09:57) [5]


> Посмотри как реализован алгоритм в ACDC

А разве у него открыты исходники?

Посмотри также св-во
property Performance: TJPEGPerformance;
у TJPegImage. Не уверен, но может помочь.


 
Wood   (2004-09-24 10:01) [6]

TUser [5]
спасибо, см. пост [0]
Performance := TJPEGPerformance(jpBestSpeed);
приоритет скорости над качеством.
Я имею ввиду, может сам способ уменьшения картинки перед выводом на экран
  mybit[i].Canvas.StretchDraw(rect(0,0,60,60),Mjpeg);  
не верен?


 
[lamer]Barmaglot ©   (2004-09-24 10:12) [7]

to Wood   (24.09.04 10:01) [6]

Так не получится, грубо говоря JPeg - это архив, для того чтобы сделать стретчдрав, тебе надо загрузить файл, разжать его, перевести его в BMP и только после этого уменьшать размер... Оно тебе надо? Опять повторюсь, смотри формат файла, если разберешься все будет понятно, если нет... Юзай стандартный компонент и не морочь другим голову...


 
Wood   (2004-09-24 10:36) [8]

Barmaglot[7]
А как же разные использования Stream, memory и т.п. в случаях загрузки JPEG"ов? Ведь в моем случае в ВМР ничего не переводится, в принципе, происходит все быстро, только, когда попадется большой файл JPEG...
Но намек понял, дискуссию нужно прекратить?


 
[lamer]Barmaglot ©   (2004-09-24 10:41) [9]

to Wood   (24.09.04 10:36) [8]

Прекратить до момента пока ты почитаешь форматы... наверное да, а то ты говоришь глупость за глупостью. В винде выводить на экран можно только bmp... Все остальные форматы перед выводом переводятся в этот формат (часто скрыто для тебя)



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.10.10;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.041 c
1-1096320336
НовичОк
2004-09-28 01:25
2004.10.10
Динамическое создание PopupMenu и событие OnClick


4-1094391990
Command
2004-09-05 17:46
2004.10.10
Стиль XP


1-1096115569
Dmy
2004-09-25 16:32
2004.10.10
PopupMenu + иконка в трее — не закрывается нормально...


14-1095620257
SergeyGood
2004-09-19 22:57
2004.10.10
Твикер на Дельфи 7


1-1095846526
Aser
2004-09-22 13:48
2004.10.10
Undeclarated identifier: TStringDynArray





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский