-
inviz (27.12.08 14:46) [0]Добрый день! Скажите как можно представить картинку в виде последовательности байт чтобы записать в файл и потом считать?
не image1.Picture.Graphic.LoadFromStream(); а в массив байт например
var
img:array[0..65535] of byte
вот в img считать методом FileRead() и отобразить
и если нада записать потом в файл функцией FileWrite ?
Подскажите пожалуста! если можно небольшой код приведите а то я не специалист по потокам и работой с файлами в Delphi
Заранее спасибо! :) -
KilkennyCat © (27.12.08 14:56) [1]LoadFromFile
SaveFromFile -
inviz (27.12.08 15:02) [2]
> LoadFromFile
> SaveFromFile
нееет мне последовательность байт полученую из image нада записать в файл например с 256 позиции или с 485 позиции -
Sapersky (27.12.08 15:36) [3]мне последовательность байт полученую из image нада записать в файл например с 256 позиции или с 485 позиции
TFileStream.Seek(256, 0);
TBitmap(TGraphic).SaveToStream
Или нужно обязательно через array[0..65535] of byte? -
KilkennyCat © (27.12.08 15:40) [4]
> через array[0..65535] of byte
много картинок не влезет :) -
inviz (27.12.08 15:57) [5]
> Или нужно обязательно через array[0..65535] of byte?
ну у меня имеется запись:
Tdata = record
imgname : array[0..15] of char;
imgdata : array[0..65535] of byte;
end;
// в общем размерность записи составляет 65552 байт
// так получается? :)
// ну вот я и делаю следующее (пытаюсь :))
var
f:integer;
buff:Tdata;
begin
f := Fileopen('C:\1.db',fmOpenReadWrite);
buff.imgname := 'изображение 1';
buff.imgdata := // вот тут то и проблемка :))
короче когда я получу картинку из image1 как последовательность байт в
buff.imgdata (65536 байт), то запишу buff.imgdata способом
filewrite(f,buff.imgdata,65536);
у меня в голове то это работает давно уже :))
а вот как реализовать и получить картинку в buff.imgdata не знаю :(( -
inviz (27.12.08 16:45) [6]Блин меня осенило!!! :) можно ведь записать в buff.imgdata не последовательность байт изображения а позицию с которого прочитать данные с файла!!! :))
Sapersky Спасиба за код! :) -
KilkennyCat © (27.12.08 19:40) [7]Более того, ты можешь делать все в одном файле. то есть, в начале файла записать buff:Tdata, где описано то, что хранится в оставшейся части файла.
-
inviz (27.12.08 20:25) [8]
> Более того, ты можешь делать все в одном файле. то есть,
> в начале файла записать buff:Tdata, где описано то, что
> хранится в оставшейся части файла.
ага ^-^ -
CrytoGen (29.12.08 08:32) [9]может без файла сразу SetBitmapBits?
-
Sergey (20.05.09 02:01) [10]можно весь полный код пожалуйста
-
KilkennyCat © (23.05.09 03:29) [11]
> Sergey (20.05.09 02:01) [10]
Здесь вполне достаточно информации. что именно непонятно?
P.S.
Обрати внимание на дату ветки. ты думаешь, что вероятность положительного ответа на запрос полного кода достаточно высока?