Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как изменить размер 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]

ерунда. код отрисовки покажие...

> а начинают опять с верху.

это вообще о чем речь?


Наверх

Титульная страница Поиск, карта сайта Написать письмо