Вниз
Скачать: CL | DM;

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

← →
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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.025 c
14-1109942445
pasha_golub
2005-03-04 16:20
2005.03.27
Украина: Еще одно самоубийство


3-1109799582
PalladinA
2005-03-03 00:39
2005.03.27
Как из программы изменить путь к БД, прописанный в BDE?


14-1110016285
Гаврила
2005-03-05 12:51
2005.03.27
Перлы из резюме :-)


1-1110955876
Tankist
2005-03-16 09:51
2005.03.27
LISTVIEW - Как сортировать элементы не по 1-му столбцу, а по 2-му


14-1109950702
May
2005-03-04 18:38
2005.03.27
Требуется программист делфи г. Москва




   Наверх