Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.022 c
1-1107249005
first_may
2005-02-01 12:10
2005.02.13
StringReplace


1-1106811370
s_pavell
2005-01-27 10:36
2005.02.13
Интересный модуль GraphicEx


1-1106899380
Mishenka
2005-01-28 11:03
2005.02.13
PopupMenu для заголовков столбцов в DbGridEh


4-1103866801
Дмитрий Александрович
2004-12-24 08:40
2005.02.13
Узнать сколько байт (бит) программы загружено в память.


1-1106511411
acc15
2005-01-23 23:16
2005.02.13
Как работать с типизированными файлами




   Наверх