animated bmpden istenilen resim parcalarını almak
#1
Aşağıdaki procedure tüksekliği sabit eşit genişlikteki parçaların birleşiminden
oluşan bmp resimdeki istenilen parçayı alarak kod içerisinde
form1.Canvas.Draw(0,60,bmpdest);
ile belirtilen Canvas a çizer (canvası kendinize göre değiştirin)

Örnek Kullanım yerleri :
* Winamp deki yazı ve rakamlar bmp olarak hazırlanır.
* Multimedia programlarındaki yazılar ve rakamlar gini
* Timer a bağlar ve sayıları ayarlarsanız animated image elde edersiniz.

KULLANIMI :
Genel Formu :
ResimAl(başlangıç,bitiş,yükseklik:Integer;DosyaAdı:StringWink
Örnek:
var
dosya:String;
begin
dosya:=ExtractFilePath(Application.ExeName)+'anim1.bmp';
resimal(84,126,42,dosya);
end;

şeklinde kullanılabilir.
NOT: Kullanılam BMP 24 Bit olmalıdır.

//---------------------------------------//
procedure Tform1.resimal(xbas,xson,y:Integer;FileName:String);
type
TRGBTripleArray=Array[0..32768] of TRGBTriple;
pTRGBTriple=^TRGBTripleArray;

var
boyx,i,j:Integer;
bmpsource,bmpdest:TBitmap;
row:pTRGBTriple;
TRGBMatrix:array of array of TRGBTriple;
begin
bmpsource:=TBitmap.Create;
bmpdest:=TBitmap.Create;
try
boyx:=xson-xbas;
SetLength(TRGBMatrix,y+1,boyx+1);
bmpsource.PixelFormat:=pf24bit;
bmpdest.PixelFormat:=pf24bit;
bmpsource.Transparent:=true;
bmpdest.Transparent:=true;
bmpdest.Width:=xson-xbas;
bmpdest.Height:=y;
//ShowMessage(IntToStr(bmpdest.Width)+'X'+IntTostr(bmpdest.Height));
bmpsource.LoadFromFile(FileName);

for j:=0 To bmpsource.Height -1 do //bmp yüksekliği
begin
row:=bmpsource.ScanLine[j];
for i:=0 to bmpsource.Width - 1 do // belirtilen saturları
begin
if (i >= xbas) and (i <= xson) then
begin
try
TRGBMatrix[j,i-xbas]:=row[i];
except
on exception do
exit;
end;//try
end;

end;//for i
end;//for j

//------------//

form1.Canvas.Draw(0,0,bmpsource);

for j:=0 To bmpdest.Height-1 do
begin
row:=bmpdest.ScanLine[j];
for i:=0 To bmpdest.Width-1 do
row[i]:=TRGBMatrix[j,i];
end;
form1.Canvas.Draw(0,60,bmpdest);

finally
bmpsource.Free;
bmpdest.Free;
end;//try
end;
kod adı pars tarafından yapılmısdır



  Alıntı
Bu mesajı beğenenler:


Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi