Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.12;
Скачать: CL | DM;

Вниз

Массив Image в один файл   Найти похожие ветки 

 
Wel   (2006-02-21 18:22) [0]

Уважаемые мастера. На форме имеется Н-количество Panel в которых столько же Image. Подскажите пожалуйста, как можно сохранить содержимое всех Image в один файл. И если можно то и обратную процедуру. Заранее спасибо. С уважением.


 
Alkid ©   (2006-02-21 18:26) [1]

Поробуй создать TFileStream и последовательно записывать в него
TImage.Picture.Graphics. Не очень уверен, что срабтает, но можно попробовать


 
umbra ©   (2006-02-21 18:31) [2]


> содержимое всех Image в один файл
>

а как Вы собираетесь извлекать их назад?


 
Alkid ©   (2006-02-21 18:33) [3]


> а как Вы собираетесь извлекать их назад?

В принципе readFromStream читает ровно столько сколько надо и если
N картинок в поток записать, а потом N-раз из потока их считать всё
корректно отработает.


 
umbra ©   (2006-02-21 18:35) [4]


> ровно столько сколько надо

а "сколько надо" откуда известно?


 
Ega23 ©   (2006-02-21 18:36) [5]

В один Stream запихать-то проблем нет. А вот доставать как - это отдельная песня. Ты же ведь не знаешь заранее размер и количество картинок, так?
Я бы посоветовал создать такую структуру:
1. первые 4 байта (можно и не 4, если много) -  количество картинок.
2. дальше по количеству картинок на 8 байт - в первых четырёх - байтовое смещение относительно начала потока, указывающее на начало очередного рисунка, во вторых четырёх - размер.
Ну и потом, собственно, сами картинки.


 
Alkid ©   (2006-02-21 18:38) [6]

Имхо слишком накручено. Первые 4 байта точно надо
под количетсво картинок отвести. А дальше размер не обязательно, как мне
думается, ибо TGraphics сам записывает всю необходимую информацию и при
чтении единственное необходимое условние - это то, что бы текущая позиция
в потоке была на начале блока данных. Кстати, TGraphis.LoadFromStream
получает в параметре только поток).


 
Джо ©   (2006-02-21 18:39) [7]

> [3] Alkid ©   (21.02.06 18:33)
>
> > а как Вы собираетесь извлекать их назад?
>
> В принципе readFromStream читает ровно столько сколько надо

Нет, как раз ReadFromStream читает от текущей позиции до окончания потока данных.


 
Джо ©   (2006-02-21 18:40) [8]

>Alkid ©  
> . А дальше размер не обязательно, как мне
> думается,

Неправильно думается.


 
Ega23 ©   (2006-02-21 18:41) [9]


> Имхо слишком накручено.


Если по-твоему, то после каждой итерации придётся вычислять параметры следующего блока.
Хотя на вкус и цвет...


 
Джо ©   (2006-02-21 18:42) [10]

Я бы предложил структуру попроще.
Каждая порция данных предваряется 4 байтами, в которых указан размер. И этого будет достаточно.


 
Alkid ©   (2006-02-21 18:42) [11]

Ха, тут ещё фишкастее фишка есть. TGraphic - это абстрактный класс,
у которого есть конкретный потомки, которые, собственно, и реализуют
эти методы. Так что просто так считать не получится - надо ещё
знать какого именно класса надо штамповать объект, которому скармливать
поток.

Так что надо смотреть в сторону сериализации, как она введена в Delphi.


 
PZ   (2006-02-21 19:25) [12]

А может быть в ресурс загнать. Я, правда, не знаю, можно ли это сделать?



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

Текущий архив: 2006.03.12;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.1 c
8-1128233186
homm
2005-10-02 10:06
2006.03.12
16 битное значение цвета из 32 битного представления


15-1139843402
VictorT
2006-02-13 18:10
2006.03.12
Как молоды мы были, или смешные исходники :D


4-1135151640
vlad_Ladynin
2005-12-21 10:54
2006.03.12
Запись и воспроизведение действий пользователя.


1-1139390058
webpauk
2006-02-08 12:14
2006.03.12
Движение мыши


2-1140448453
Spieler
2006-02-20 18:14
2006.03.12
Сообщения Windows