![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как изменить размер bitmap [D7]
vini © (2014-04-20 14:27:00)Всем привет. Такой вопрос как можно изменить размер битмапа, а то у меня при отрисовке изоражения ниже 200 пикселя не хотят рисоваться а начинают опять с верху.
KilkennyCat (2014-04-20 16:26:00) [1]можно оптимизировать:
case ElIndex of
0: _Bitmap.Canvas.RoundRect(x*3,y*3,(x+100)*3,(y+40)*3,40*3,40*3);//4.bmp
1: _Bitmap.Canvas.RoundRect(x*3,y*3,(x+100)*3,(y+40)*3,40*3,40*3);//4.bmp
2: Element:='1.bmp';
3,4,5: begin
SetLength(arPxl,4);
arPxl[0].X:=50*3;
arPxl[0].Y:=50*3;
arPxl[1].X:=150*3;
arPxl[1].Y:=50*3;
arPxl[2].X:=200*3;
arPxl[2].Y:=100*3;
arPxl[3].X:=100*3;
arPxl[3].Y:=100*3;
if ElIndex = 4 then behin
SetLength(arPxl,6);
arPxl[4].X:=100*3;
arPxl[4].Y:=100*3;
arPxl[5].X:=100*3;
arPxl[5].Y:=100*3;
end;
_Bitmap.Canvas.Polygon(arPxl);
end;
end;
vini (2014-04-20 15:22:00) [2]простите я понял свою ошибку просто короткий тип данных был использован
vini (2014-04-20 14:56:00) [3]например я рисую один элемент несколько раз, отрисовывает 6 раз а дальше начинает с верху.
vini (2014-04-20 14:54:00) [4]
procedure TForm2.sButton1Click(Sender: TObject);
begin
CanvasDraw(0,pos,sComboBox1.ItemIndex);
pos:=pos+ThePositionOfTheItems(sComboBox1.ItemIndex);
end;
procedure CanvasDraw(X,Y:byte; ElIndex:Integer);
var Element: string;
arPxl: array of TPoint;
_Bitmap:Tbitmap;
begin
_Bitmap:=TBitmap.Create;
try
BitmapPrepare(_Bitmap,Form2.Image1.Picture.Bitmap.Canvas,rect(10,10,Form2.Image1 .Height,Form2.Image1.Height));
_Bitmap.Canvas.Brush.Color:=RGB(17,100,159);
_Bitmap.Canvas.Pen.Color:=RGB(39,69,106);
_Bitmap.Canvas.Pen.Width:=3;
case ElIndex of
0: _Bitmap.Canvas.RoundRect(x*3,y*3,(x+100)*3,(y+40)*3,40*3,40*3);//4.bmp
1: _Bitmap.Canvas.RoundRect(x*3,y*3,(x+100)*3,(y+40)*3,40*3,40*3);//4.bmp
2: Element:='1.bmp';
3: begin
SetLength(arPxl,4);
arPxl[0].X:=50*3;
arPxl[0].Y:=50*3;
arPxl[1].X:=150*3;
arPxl[1].Y:=50*3;
arPxl[2].X:=200*3;
arPxl[2].Y:=100*3;
arPxl[3].X:=100*3;
arPxl[3].Y:=100*3;
_Bitmap.Canvas.Polygon(arPxl);//3.bmp
end;
4: begin
SetLength(arPxl,6);
arPxl[0].X:=50*3;
arPxl[0].Y:=50*3;
arPxl[1].X:=150*3;
arPxl[1].Y:=50*3;
arPxl[2].X:=200*3;
arPxl[2].Y:=100*3;
arPxl[3].X:=100*3;
arPxl[3].Y:=100*3;
arPxl[4].X:=100*3;
arPxl[4].Y:=100*3;
arPxl[5].X:=100*3;
arPxl[5].Y:=100*3;
_Bitmap.Canvas.Polygon(arPxl);//2.bmp
end;
5: begin
SetLength(arPxl,4);
arPxl[0].X:=50*3;
arPxl[0].Y:=50*3;
arPxl[1].X:=150*3;
arPxl[1].Y:=50*3;
arPxl[2].X:=200*3;
arPxl[2].Y:=100*3;
arPxl[3].X:=100*3;
arPxl[3].Y:=100*3;
_Bitmap.Canvas.Polygon(arPxl);//5.bmp
end;
end;
Alias(_Bitmap,Form2.Image1.Picture.Bitmap.Canvas,rect(10,10,Form2.Image1.Height, Form2.Image1.Height));
finally
_Bitmap.Free;
end;
Form2.sListBox1.Items.Add('Äîáàâëåí ýëåìåíò - '+Form2.sComboBox1.Text);
end;
KilkennyCat (2014-04-20 14:49:00) [5]var bmp : TBitmap;
bmp.width = 100; // изменили ширину
bmp.height = 50;// изменили высоту.
итого: изменили размер, что соответствует вопросу на 100%.
что там после 200-го пикселя - не ясно, ибо код не приведен.
brother (2014-04-20 14:46:00) [6]ерунда. код отрисовки покажие...
> а начинают опять с верху.
это вообще о чем речь?