Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2015.09.10;
Скачать: [xml.tar.bz2];

Вниз

Как изменить размер bitmap   Найти похожие ветки 

 
vini ©   (2014-04-20 14:27) [0]

Всем привет. Такой вопрос как можно изменить размер битмапа, а то у меня при отрисовке изоражения ниже 200 пикселя не хотят рисоваться а начинают опять с верху.


 
brother ©   (2014-04-20 14:46) [1]

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

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

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


 
KilkennyCat ©   (2014-04-20 14:49) [2]

var bmp : TBitmap;

bmp.width = 100; // изменили ширину
bmp.height = 50;// изменили высоту.
итого: изменили размер, что соответствует вопросу на 100%.

что там после 200-го пикселя - не ясно, ибо код не приведен.


 
vini ©   (2014-04-20 14:54) [3]


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;


 
vini ©   (2014-04-20 14:56) [4]

например я рисую один элемент несколько раз, отрисовывает 6 раз а дальше начинает с верху.


 
vini ©   (2014-04-20 15:22) [5]

простите я понял свою ошибку просто короткий тип данных был использован


 
KilkennyCat ©   (2014-04-20 16:26) [6]

можно оптимизировать:

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;



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2015.09.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.08 c
15-1418396465
Gydvin
2014-12-12 18:01
2015.09.10
А вот интересно


6-1255352020
minomorf
2009-10-12 16:53
2015.09.10
Как сделать аутификацию после подключения клиента к TServerSocket


2-1392639364
Васька
2014-02-17 16:16
2015.09.10
Открытие формы


1-1331112835
Deltas
2012-03-07 13:33
2015.09.10
TOleContainer и Excel


15-1412713803
Юрий
2014-10-08 00:30
2015.09.10
С днем рождения ! 8 октября 2014 среда





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский