Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.09.2013, 07:16   #1
Григорийoss
 
Регистрация: 15.09.2013
Сообщений: 4
По умолчанию из С++ в delphi

Доброго времени. Помогите плиз с решением небольшой проблемки.

из Си переписываю функцию.
Код:
uint32_t Color(byte r, byte g, byte b)
{
   uint32_t c;
  c = r;
  c <<= 8;
  c |= g;
  c <<= 8;
  c |= b;
  return c;
}
на delphi пытаюсь получить аналог
Код:
procedure TForm1.Button1Click(Sender: TObject);
var Bitmap:TBitmap;
JPEGImage:TJPEGImage;
  r, g, b, i, j: integer;
  rr,gg,bb: byte;
  rrrrrrrrr:Longint;
begin
JPEGImage:=TJPEGImage.Create;
JPEGImage.LoadFromFile('E:\Documents and Settings\1\Рабочий стол\111111111.jpg');
Bitmap:=TBitmap.Create;
Bitmap.Assign(JPEGImage);
Image1.Picture.Bitmap:=Bitmap;
Bitmap.Destroy;
JPEGImage.Destroy;
  //Image1.Height := Image1.Height * 3;
 // Image1.Width := Image1.Width * 3;
  for i := 0 to Image1.Width do
    for j := 0 to Image1.Height do
    begin
      r := GetRValue(Image1.Picture.Bitmap.Canvas.Pixels[i, j]);
      g := GetGValue(Image1.Picture.Bitmap.Canvas.Pixels[i, j]);
      b := GetBValue(Image1.Picture.Bitmap.Canvas.Pixels[i, j]);
      rr:=r;
      gg:=g;
      bb:=b;
      //rrrrrrrrr:=Color(RGB(rr,gg,bb));
           rrrrrrrrr:=Colorееее(GetRValue(Image1.Picture.Bitmap.Canvas.Pixels[i, j]),GetGValue(Image1.Picture.Bitmap.Canvas.Pixels[i, j]),GetBValue(Image1.Picture.Bitmap.Canvas.Pixels[i, j]));
      //Memo1.Lines.Add(Color(rr,gg,bb));
    end;
end;


function  Color(r,g,b:byte):Cardinal;
var c:Cardinal;
begin
  c := r;
  c := c Shl  8;
  c := c or g;
  c := c Shl  8;
  c := c or b;
 Result c ;
end;
на строке rrrrrrrrr:=Colorееее(GetRValue(Imag e1.Picture.Bitmap.Canvas.Pixels[i, j]),GetGValue(Image1.Picture.Bitmap.C anvas.Pixels[i, j]),GetBValue(Image1.Picture.Bitmap.C anvas.Pixels[i, j])); дает ошибку [Error] Unit1.pas(75): Missing operator or semicolon.
Видимо туплю на какой то мелочи.

Последний раз редактировалось Stilet; 15.09.2013 в 09:52.
Григорийoss вне форума Ответить с цитированием
Старый 15.09.2013, 09:56   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Может лучше так?:
Код:
function  Color(Cl:TColor):Cardinal;
var c:Cardinal;
begin
  c := GetRValue(cl);
  c := c Shl  8;
  c := c or GetGValue(cl);
  c := c Shl  8;
  c := c or GetBValue(cl);
 Result c ;
end;

...

rrrrrrrrr:=Colorееее(Image1.Picture.Bitmap.Canvas.Pixels[i, j]);
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программист Delphi который поможет доделать проект на Delphi XE3 BukTop2009 Фриланс 3 26.10.2012 23:51
Не изменяется интерфейс моей программы при переходе с Delphi 7 на Delphi 2010 Elvisnya Общие вопросы Delphi 3 28.04.2011 15:59
Rad Studio 2011 XE: новое в Delphi, C++ Builder, RadPHP и Delphi Prism savva-paladin Софт 18 02.10.2010 20:24
Delphi. Как нарисовать в Delphi два движущиеся шара с определенной скоростью? redred Общие вопросы Delphi 10 11.12.2007 10:43
Как открыть БД, написанную в Delphi если нf другой машине Delphi нет? dagarik БД в Delphi 7 22.10.2007 17:54