|
Bitli tasvirlardan foydalanish
|
bet | 9/17 | Sana | 18.05.2024 | Hajmi | 0,95 Mb. | | #242188 |
Bog'liq I bob c builder dasturining grafik imkoniyatlari 6 1.3. Bitli tasvirlardan foydalanish
Murakkab tasvirlarni tashkil etish uchun bitli tasvirlashdan foydalaniladi. Bitli tasvir—kompyuter xotirasida joylashgan katta boʻlmagan rasmdir. Bitli tasvirni baytlar yoki fayldagi resurslar orqali tashkil etish mumkin. Shuningdek, “forma sirtidan yoki boshqa bitli tasvirlardan olingan nusxalar boʻlishi mumkin”[2,12].
Bitli tasvirlarni garfik muharrirlar yordamida tayyorlash yoki dasturiy vositalar yordamida resurslardan yuklab olish mumkin. Oxirgi holat fayl resurslarini tashkil etish va unga bitli tasvirlarni joylashtirish imkonini beradi. Fayl resurslarini ImageEditor utilitasi yordamida ham yaratish va tahrirlash mumkin.
Dasturdagi bitli tasvir — bu TBitmap obyektidir. Quyidagi jadvalda TBitmap ning ayrim xossalari keltirilgan:
6-Jadval. TBitmap obyektining xususiyatlari
Xususiyatlari
|
Vazifasi
|
Height,Width
|
Bitli tasvir oʻlchamlari. Fayl yoki resursdan yuklangan bitli tasvirga mos keluvchi qiymatlar
|
Empty
|
Bitli tasvirning fayldan yuklanganlik belgisi
|
Transparent
|
Shaffof rangni oʻrnatish. Bu rang bilan boʻyalgan rasm elementlari Draw metodi chaqirilmaydi
|
Transparent Color
|
Shaffof rang rejimini oʻrnatish. Odatda TransParentColor quyi chap piksel rangi bilan aniqlanadi
|
Canvas
|
Bitli tasvir sirti . Rasm xuddi forma sirtida yoki Image komponentasida chizilgani kabi
|
Bitli tasvirni bmp fayllarni chaqirilgani kabi LoadFromFile metodi bilan chaqirish mumkin. Masalan, quyidagi dastur boʻlagi bitli tasvirni fayldan yuklash ishini bajaradi:
#include
#pragma hdrstop
#include "Unit1.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
Graphics::TBitmap *Background, *Bitmap, *Buf;
int W,H,x,y;
TRect BufRect,BackRot;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
Background = new Graphics::TBitmap();
Bitmap = new Graphics::TBitmap();
Buf = new Graphics::TBitmap();
Background->LoadFromFile("sea.bmp");
Form1->Image1->Canvas->Draw(0,0,Background);
Bitmap->LoadFromFile("ship.bmp");
Bitmap->Transparent = true;
Bitmap->TransparentColor = Bitmap->Canvas->Pixels[1][1];
W= Bitmap->Width;
H= Bitmap->Height;
Buf->Width= W;
Buf->Height=H;
Buf->Palette=Background->Palette;
Buf->Canvas->CopyMode=cmSrcCopy;
BufRect=Bounds(0,0,W,H);
x = -150;
y = 100;
BackRot=Bounds(x,y,W,H);
Buf->Canvas->CopyRect(BufRect,Background->Canvas,BackRot);
Form1->DoubleBuffered = true; }
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{ Form1->Image1->Canvas->Draw(x,y,Buf);
x++;
if (x>Form1->Image1->Width) x=-W;
BackRot=Bounds(x,y,W,H);
Buf->Canvas->CopyRect(BufRect,Background->Canvas,BackRot);
Form1->Image1->Canvas->Draw(x,y,Bitmap);
Timer1->Interval=50;}
Ushbu dastur ishlashi natijasida forma oynasida quyidagi harakatlanuvchi tasvir hosil boʻladi:
1.8.Rasm. Harakatlanuvchi kema tasviri
|
| |