Главная страница
    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.078 c
1-1096271082
malamba
2004-09-27 11:44
2004.10.10
Номер контрола на форме


3-1095173355
VictorT
2004-09-14 18:49
2004.10.10
MySQL 4.0.22 - он нормальный?


4-1094650844
Новишок
2004-09-08 17:40
2004.10.10
Закрыть программку, нажав на кнопу в сыоей проге


1-1096231022
Kolan
2004-09-27 00:37
2004.10.10
Визуальные стили (или как их там)


1-1096026274
Tack
2004-09-24 15:44
2004.10.10
Мерцание TRichEdit при скроллинге





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский