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

Вниз

Загрузка изображений из паралельного потока.   Найти похожие ветки 

 
Mirror ©   (2004-12-07 20:28) [0]

Доброго времени суток!
Люди, кто работал с компонентом ImageEn, подскажите, пожалуйсто, несколько вещей. Как загружать в него картинки с помощью не основного потока не вызывая Synchronize? Смысл в том, что файлы, которые нужно грузить, давольно большие и я хочу сгрузить эту операцию на другой поток (Thread), чтобы приложение не "висло" в момент загрузки файла.(Если кто знает другой метод решения этой проблемы - пишите). И второй вопрос: как с помощью ImageEn читать EXIF информацию?

З.Ы. Модераторы! Если я опять написал не в ту конференцию (по вашему мнению) можно не удалять ветку, а переместить её туда, где, по вашему мнению, она должна быть, а?


 
Digitman ©   (2004-12-08 18:26) [1]


> Mirror


не знаю, что такое ImageEn, но, скорей всего, ты промахнулся темой конференции. В "Основная" место вопросу.


 
programania ©   (2004-12-08 20:16) [2]

>чтобы приложение не "висло" в момент загрузки файла
Возможно не "висло" это чтоб оно действовало
от клавишей и мыши?
Возможно действия это скорее всего загрузка другого файла?
Тогда текущую загрузку нужно прервать
и значит поток не имеет смысла, потому что не нужна
одновременная работа.
Загрузку можно прервать при чтении файла, если
читать по кусочкам в memoryStream:

stoi:=false;
assignFile(f,imk);
reset(f,1);
r:=fileSize(f);
ms.size:=r;
n:=0;
repeat
 if r>500000 then q:=500000 else q:=r;
 blockRead(f,ptr(integer(ms.Memory)+n)^,q);
 inc(n,q);
 dec(r,500000);
 application.processMessages;
until (r<=0)or stoi;
ms.Seek(0,soFromBeginning);
closeFile(f);

if not stoi then form1.ImageEnIO1.LoadFromStream(ms);


в FormKeyDown FormMouseDown добавить stoi:=true;

Загрузку можно прервать при декодировании jpeg
для этого в JpegFilt.pas  версии 1.9.7b добавить
в uses ...,forms;
в procedure ReadJPegStream
в    while (cinfo.output_scanline<cinfo.output_height)
and not stoi do begin
application.processMessages;

об Exif
в версии imageEn 2.0.3
ImageEnIO1:=TImageEnIO.create(form1);
ImageEnIO1.ParamsFromFile("I0001.jpg");
label1.caption:=ImageEnIO1.Params.EXIF_Model+"  "+
               ImageEnIO1.Params.EXIF_DateTime;
и т.п. еше около 50 параметров
к сожалению у меня нет исходников этой версии
если что об них известно сообщите пожалуста.


 
murtix   (2004-12-14 07:05) [3]

А где можно его вхять этот ImageEn


 
programania ©   (2004-12-14 20:45) [4]

>А где можно его вхять этот ImageEn

http://www.hyrix.com
или на CD-сборнике компонент бывает
старая версия 1.9, но с исходниками.



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

Форум: "Media";
Текущий архив: 2005.03.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.041 c
14-1109929469
Doxygen
2005-03-04 12:44
2005.03.27
Немецкие умляуты


1-1110983113
hgd
2005-03-16 17:25
2005.03.27
Карты IMG открыть


14-1110281620
Свердликовский Михаил
2005-03-08 14:33
2005.03.27
Заработок на Freeware


1-1111059565
JK
2005-03-17 14:39
2005.03.27
Как прервать приложение?


1-1110556503
redlord
2005-03-11 18:55
2005.03.27
Socket : TCustomWinSocket в качестве владельца





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