Всем привет, извините но знаю что подобных тем в инете много но я так и не смог найти решение. У меня задача. Нужно содержимое Bitmap отправить по почте, но не создавать никаких файлов на компе. Т.е. нужно картинку из Bitmap как то преобразовать в стринг, наверное, и отправить. Чтобы потом на другом компе эту картинку просмотреть в компоненте TImage, к примеру. воот. я много попробовал сейчас несколько примеров кода выложу и расскажу что не так.
1.
Код:
for i := 0 to Image1.Height - 1 do
begin
for j := 0 to Image1.Width - 1 do
begin
Color := Image1.Canvas.Pixels[j, i];
// Получаем составляющие цвета
R := GetRValue(Color);
G := GetGValue(Color);
B := GetBValue(Color);
// Теперь делаем с ними, что надо. Например, сохраняем в массив.
end;
end;
нашел код на каком то сайте. но вот только не могу понять как он работает, потому что не должен он ничего сохранить кроме последнего пикселя. я конечно попробовал закрасить TImage. но либо вся форма становилась черной, либо красной.
Код:
for i := 0 to Image2.Height - 1 do
begin
for j := 0 to Image2.Width - 1 do
begin
// Получаем составляющие цвета
Image2.Canvas.Pixels[j, i]:= r;
Image2.Canvas.Pixels[j, i]:= g;
Image2.Canvas.Pixels[j, i]:= b;
// Теперь делаем с ними, что надо. Например, сохраняем в массив.
end;
воот. это не получилось. я вот подумал может значения цветов R G и B сохранять в массив. но вот только не смог сообразить как мне массив сделать и как потом из массива все это в картинку превратить.
2.
Код:
var
a: array of TRGBTriple;
bmp: TBitMap;
size: dword;
begin
bmp:=TBitMap.Create;
bmp.LoadFromFile( 'c:\1.bmp' );
size:=bmp.Width*bmp.Height;
Setlength(a,size);
GetBitmapBits(bmp.Handle,size*3,a);
// теперь вся картинка в одномерном массиве a
end;
ну тут трудно сказать. я вообще не знаю как после этого вывести все что там в массиве в TImage. Если этот код все таки работает как нужно то может подскажите как мне после отправить значения массива по почте и потом отбразить их. я тут не смог разобраться потому что тип массива интересный.
ну вот. это конечно не все что я пробовал. просто остальные вкладки закрыл уже. помогите пожалуйста уже третий день мучаюсь. решил вот у вас спросить.