из С++ в delphi
Добавлено: 15 сен 2013, 08:00
Доброго времени. Помогите плиз с решением небольшой проблемки.
из Си переписываю функцию.
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:\Document s 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.Can vas.Pixels[i, j]);
g := GetGValue(Image1.Picture.Bitmap.Can vas.Pixels[i, j]);
b := GetBValue(Image1.Picture.Bitmap.Can vas.Pixels[i, j]);
rr:=r;
gg:=g;
bb:=b;
//rrrrrrrrr:=Color(RGB(rr,gg,bb));
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]));
//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.
Видимо туплю на какой то мелочи.
из Си переписываю функцию.
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:\Document s 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.Can vas.Pixels[i, j]);
g := GetGValue(Image1.Picture.Bitmap.Can vas.Pixels[i, j]);
b := GetBValue(Image1.Picture.Bitmap.Can vas.Pixels[i, j]);
rr:=r;
gg:=g;
bb:=b;
//rrrrrrrrr:=Color(RGB(rr,gg,bb));
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]));
//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.
Видимо туплю на какой то мелочи.