Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

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

Последний раз редактировалось Easy, 27.05.2013 в 20:57.
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:46.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter