Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2005.02.13;
Скачать: [xml.tar.bz2];

Вниз

Как докапаться до 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.046 c
1-1106763901
gonzales
2005-01-26 21:25
2005.02.13
Создание горячей папки для принтера


1-1107087746
rolex
2005-01-30 15:22
2005.02.13
Как получить размер папки?


1-1107078546
MakedoneZ
2005-01-30 12:49
2005.02.13
Что означает ошибка "Invalid variant type convertion".


1-1107017305
Караваев Дмитрий
2005-01-29 19:48
2005.02.13
Как скопировать PWideChar в буфер обмена?


1-1106303408
Alexandr
2005-01-21 13:30
2005.02.13
заполнение Tpopup в runtime





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский