Конференция "Media" » картинка в виде последовательности байт [D7, WinXP]
 
  • 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.
    Обрати внимание на дату ветки. ты думаешь, что вероятность положительного ответа на запрос полного кода достаточно высока?
 
Конференция "Media" » картинка в виде последовательности байт [D7, WinXP]
Есть новые Нет новых   [134431   +10][b:0][p:0.001]