Форум: "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