|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
содержимое BitMap в массив и обратно делфи
Всем привет, извините но знаю что подобных тем в инете много но я так и не смог найти решение. У меня задача. Нужно содержимое 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; Код:
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; 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; ну вот. это конечно не все что я пробовал. просто остальные вкладки закрыл уже. помогите пожалуйста уже третий день мучаюсь. решил вот у вас спросить. Последний раз редактировалось Easy, 27.05.2013 в 20:57. |