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

Вниз

Как докапаться до Picture.Data в TImage?   Найти похожие ветки 

 
OneFragLeft ©   (2005-01-25 07:15) [0]

На форме есть TImage с загруженным в него рисунком.
Если сделать на форме View as Text, то там будет примерно следующий код:

object Image1: TImage
   Left = 72
   Top = 40
   Width = 48
   Height = 48
   AutoSize = True
   Picture.Data = {
     07544269746D617042120000424D421200000000000042000000280000003000
     000030000000010010000300000000120000120B0000120B0000000000000000
     0000007C0000E00300001F0000003B4F3B4B3B4B3B4B3B4B3B4B3B4B3B4B3B4B
        ....................
     4A296B2D8C318C35AD39AD39AD398C352929A61409214A25E814C60C840C6308
     8D213B471B471B471B471B471B4B3B4B1B}
   End

Как можно извлечь данные, которые находятся в Picture.Data и сохранить в файл в виде текста в программе,
а не из Дельфи?


 
OneFragLeft ©   (2005-01-25 07:55) [1]

Может я, конечно, в шарЫ долблюсь с утра, но вот только не нашёл я такого свойства у Image!!!!!
В чём же дело?


 
КаПиБаРа ©   (2005-01-25 08:04) [2]

Image.Picture.SaveToFile


 
КаПиБаРа ©   (2005-01-25 08:08) [3]

Если в виде текста, то сохранить рисунок в поток SaveToStream, а потом преобразовать в текст и записать в файл.


 
OneFragLeft ©   (2005-01-25 08:36) [4]

SaveToStream есть у TGraphic. Но вот как вытащить текст из потока?...это уже вопрос серьёзный.
Не поможете разобраться что и как делать?


 
MBo ©   (2005-01-25 09:05) [5]

см пример в справке TStream.WriteComponent


 
OneFragLeft ©   (2005-01-25 10:30) [6]

Ну вроде понял как сохранить. А вот как теперь эти данные запихнуть в другой Image?
ReadComponent? Но вот с ним проблемы.

function StringToComponent(Value: string): TComponent;
var
 StrStream:TStringStream;
 BinStream: TMemoryStream;
begin
 StrStream := TStringStream.Create(Value);
 try
   BinStream := TMemoryStream.Create;
   try
     ObjectTextToBinary(StrStream, BinStream);
     BinStream.Seek(0, soFromBeginning);
     Result := BinStream.ReadComponent(nil);

   finally
     BinStream.Free;
   end;
 finally
   StrStream.Free;
 end;
end;


Как вставить в компонент только данные из Data, а не весь компонент?


 
Ega23 ©   (2005-01-25 10:35) [7]

Image1.Picture.Bitmap.SaveToFile("C:\1.bmp");
Image2.Picture.Bitmap.LoadFromFile("C:\1.bmp");

или

var
ms:TMemoryStream;

begin
ms:=TMemoryStream.Create;
try
 Image1.Picture.Bitmap.SaveToStream(ms);
 Image2.Picture.Bitmap.LoadFromStream(ms)  ;
finally
 ms.Free;
end;


 
OneFragLeft ©   (2005-01-25 10:42) [8]

Может я плохо чего объяснил, но надо выдрать из одного Image текст(именно текст, как он есть) и вставить его в другой Image.
Дело в том, что я хочу попробовать передавать изображение по сети в виде текста, а не в виде файла.


 
Ega23 ©   (2005-01-25 10:46) [9]

2 OneFragLeft ©   (25.01.05 10:42) [8]

Т.е. на канве что-то написано, а ты хочешь это что-то распознать и запихнуть в текст?


 
OneFragLeft ©   (2005-01-25 10:49) [10]

>Ega23 ©   (25.01.05 10:46) [9]
смотри OneFragLeft ©   (25.01.05 7:15)



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

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

Наверх




Память: 0.49 MB
Время: 0.031 c
14-1106335897
olookin
2005-01-21 22:31
2005.02.13
Являетсли ли склонность к попсе признаком деградации?


6-1101743510
seeker
2004-11-29 18:51
2005.02.13
направить TSOCKET через прокси....


3-1105636223
tytus
2005-01-13 20:10
2005.02.13
Как лучше удалить записи из БД?


1-1107238854
Jay1982
2005-02-01 09:20
2005.02.13
Run in Remote Desktop


14-1106229560
Поручик
2005-01-20 16:59
2005.02.13
Поздравьте меня