Jak podzielić bitmapę...

0

mam bitmapę powiedzmy, że nosi nazwę B: TBitmap i jest dość sporych rozmiarów (załóżmy że ma długość 10000 pikseli) i chciałbym z niej zrobić kilka mniejszych np. Bit1, Bit2,...Bit10 : TBitmap ale rozmiarów po 1000 pikseli. Czy ma ktoś z Was może jakiś kod do tego aby coś takiego zrobić albo czy może mi ktoś napisać taki programik na forum?

Pozdrawiam all--BigJas

0

Ten kodzik:

var
TablicaB:array[1..10] of TBitmap;
Bitmapa:TBitmap;
I:ShortInt;
KawalZ, KawalD:TRect;
Szer,Wys,Xn:Integer;
S:String;
begin
S:=ExtractFilePath(Application.ExeName);
Bitmapa:=TBitmap.Create;
Bitmapa.LoadFromFile(S+'bitmapa.bmp');
Szer:=Bitmapa.Width div 10;
Wys:=Bitmapa.Height;
KawalD:=Rect(0,0,Szer,Wys);
for I:=0 to 9 do
begin
TablicaB[I+1]:=TBitmap.Create;
TablicaB[I+1].Width:=Szer;
TablicaB[I+1].Height:=Wys;
Xn:=(I+1)Szer;
KawalZ:=Rect(I
Szer, 0, Xn, Wys);
TablicaB[I+1].Canvas.CopyRect(KawalD, Bitmapa.Canvas, KawalZ);
end;

Dzieli bitmpe Bitmpa na 10 kawalkow wzdloz od i umieszcza te kawalki (pierwszy kawalek bitmpay od lewej strony ekranu umieszczony jest w elemencie tablicy o indeksie 1, 2 w 2 itd) w talicy 10 obiektow typu TBitmap (TablicaB). Na poczatku okresla wartsci zmiennych szer i wys czyli wysokosci i szerokosci kawalkow a potem w petli for tworzy poszczegolne elementy tablicy, ustala ich parametry a potem przy pomocy licznika petli I oblicza ktory obszar (rect) ma skopiowac do elementu tablicy o indeksie I+1 . W wyniku dzilania petli powstaje tablica 10 elementowa, ktorej kazdy element to kawalek bitmapy Bitmapa. Pamietaj aby potem wyawalic z pamieci wszystkie tworzone obiekty typu TBitmap.
Mam nadzieje ze nie bedziesz mial problemow ze zrozumieniem i adaptacja kodu do swoich potrzeb.
W razie watpliwosci pytaj.--Pozdrawiam
Ojciec (Delphi 5 Enterprise)

0

Wielkie dzięki OJCZE hehehe bo już straciłem nadzieję że ktokolwiek jest mi w stanie pomóc! :)--BigJas

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0