Bitmap'den parça almak

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
poke53280
Üye
Mesajlar: 25
Kayıt: 23 Haz 2004 02:56
Konum: TOKAT

Bitmap'den parça almak

Mesaj gönderen poke53280 »

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.
Kullanıcı avatarı
hbahadir
Kıdemli Üye
Mesajlar: 544
Kayıt: 06 Ara 2004 05:03
Konum: BURSA idi artık İST.
İletişim:

Mesaj gönderen hbahadir »

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;
Kolay gelsin
poke53280
Üye
Mesajlar: 25
Kayıt: 23 Haz 2004 02:56
Konum: TOKAT

olmadı

Mesaj gönderen poke53280 »

kardeş böyle olmadı.

Yani Function ResimdenParcaAl (Resim: TBitmap, Parca: TRect):TBitmap;

gibi bir izahını yapabilecek arkadaş var mı?

Şimdiden teşekkürler.

Kolay gele.
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

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...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
poke53280
Üye
Mesajlar: 25
Kayıt: 23 Haz 2004 02:56
Konum: TOKAT

Şöyle ki

Mesaj gönderen poke53280 »

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.
poke53280
Üye
Mesajlar: 25
Kayıt: 23 Haz 2004 02:56
Konum: TOKAT

Hallettim..

Mesaj gönderen poke53280 »

Arkadaşlar şöyle yaptım ve halloldu.
-----------------------------------------

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;
şeklinde yazmak yetti.
Cevapla