Selamlar..
Benzer bişeyler aradım ama işe yaramadı.
Mesela genişliği 200*240 pixel olan bir Bitmapden;
x= 20 ve y= 40 tan başlayıp,
x= 180 ve y= 200'e kadar olan bölümünü almak istiyorum.
Canvas konusunu fazla bilmediğim için yardım edebilen arkadaşlara duyurulur.
Teşekkürler. Kolay gelsin.
Bitmap'den parça almak
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
const
CopyWidth = 50; // kopyalanacak genislik
CopyHeight = 50; // kopyalanacak yükseklik
begin
Image2.Picture.Bitmap.Width := CopyWidth;
Image2.Picture.Bitmap.Height := CopyHeight;
Image2.Picture.Bitmap.Canvas.CopyRect(Rect(0, 0, CopyWidth, CopyHeight), Image1.Picture.Bitmap.Canvas, Rect(5, 5, CopyWidth + 5, CopyHeight + 5));
end;
Bir fonksiyon tasarlarken ne almak istiyorsanız almak isdediğiniz şeylerin kriterlerini oluşturmanız gerekir.
ResimdenParcaAl (Resim: TBitmap, BHeight : Integer,BWith : Integer):TBitmap;
vb....
Yani fonksiyona resmi , Değişikliğe uğratacağınız kiriterleri gireceksiniz ardından ressimi yeni hali ile geri alacaksınız.
Kolay Gelsin...
ResimdenParcaAl (Resim: TBitmap, BHeight : Integer,BWith : Integer):TBitmap;
vb....
Yani fonksiyona resmi , Değişikliğe uğratacağınız kiriterleri gireceksiniz ardından ressimi yeni hali ile geri alacaksınız.
Kolay Gelsin...
Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Şöyle ki
var
r1,r2:TBitmap;
rc:Trect;
begin
r1:= getformimage;
rc:= Rect(0,0,130,120);
r2:= ResimdenParcaAl (r1, rc);
//Function ResimdenParcaAl (Resim: TBitmap, Parca: TRect):TBitmap;
end;
gibi izah etmek istedim.
Canvasta zayıf kalmışım hocam.
Saygılar kolay gelsin.
r1,r2:TBitmap;
rc:Trect;
begin
r1:= getformimage;
rc:= Rect(0,0,130,120);
r2:= ResimdenParcaAl (r1, rc);
//Function ResimdenParcaAl (Resim: TBitmap, Parca: TRect):TBitmap;
end;
gibi izah etmek istedim.
Canvasta zayıf kalmışım hocam.
Saygılar kolay gelsin.
Hallettim..
Arkadaşlar şöyle yaptım ve halloldu.
-----------------------------------------
şeklinde yazmak yetti.
-----------------------------------------
Kod: Tümünü seç
procedure TForm1.Button6Click(Sender: TObject);
var
bm:TBitmap;
begin
if AdsQuery_Hastalar.State in [dsedit,dsinsert] then
begin
Application.MessageBox('Önce kaydedin','Uyarı',MB_OK+MB_ICONWARNING);
PageControl1.TabIndex:=0;
exit;
end;
try
PageControl1.SelectNextPage(true,true);
///////////////Burada halloldu//////////////////
bm:= GetFormImage;
form2.QRImage1.Canvas.CopyRect(Rect(0,0,form2.QRImage1.Width,form2.QRImage1.Height),bm.Canvas,Rect(0,21,bm.Width,bm.Height-42));;
Form2.QuickRep1.Preview;
//////////////Burada halloldu///////////////
finally
bm.free;
PageControl1.ActivePageIndex:=0;
end;
end;