Kopyalama hatası
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Kopyalama hatası
Değerli, arkadaşlar
Delphi 7 kullanıyorum ve sorunum, iki adet bitmap resimi birleştirip tek bitmap dosyası olarak kaydetmek. Ama yapamadım. Yaptığım uygulama şu şekilde:
procedure TForm1.Button1Click(Sender: TObject); //Button1 ile 1000x1000px boyutlu bmp resimini Image2'ye yüklüyorum.
begin
if OpenpictureDialog1.Execute then
begin
Image2.Picture.LoadFromFile(OpenpictureDialog1.FileName);
end;
end;
procedure TForm1.Button2Click(Sender: TObject); // Button2 ile dairesel şekil verdiğim (100x100 px) resimi, büyük resim üzerine kopyalıyorum.
var myBmp : TBitmap;
begin
if OpenpictureDialog1.Execute then
begin
Image3.Picture.LoadFromFile(OpenpictureDialog1.FileName); //Küçük boyutlu 100x100px resimi yüklüyorum
Image2.Left:=10; Image2.Top:=10;
myBmp := TBitmap.create;
if assigned( myBmp) then with myBmp do
try
Image3.width := 100;
Image3.height := 100;
canvas.brush.color := clMenu;
transparent := true;
width := Image3.picture.width;
height := Image3.picture.height;
canvas.brush.color := clBlack;
canvas.pen.color := clBlack;
canvas.ellipse(0,0, 100,100);
Image3.stretch:=true;
transparentColor := clBlack;
Image3.picture.bitmap.canvas.draw(0,0, myBmp);
Image3.Transparent:=true;
finally
myBmp.free;
end;
end;
end;
Şimdi sorun burada başlıyor. Image2'deki bu resimi Image1'e nasıl gönderebilirim ve image 1'i nasıl bitmap olarak kaydedebilirim.
Image1.picture := Image2.picture //Image2'deki resimi kopyalamadan Image1'e gönderiyor.
Delphi 7 kullanıyorum ve sorunum, iki adet bitmap resimi birleştirip tek bitmap dosyası olarak kaydetmek. Ama yapamadım. Yaptığım uygulama şu şekilde:
procedure TForm1.Button1Click(Sender: TObject); //Button1 ile 1000x1000px boyutlu bmp resimini Image2'ye yüklüyorum.
begin
if OpenpictureDialog1.Execute then
begin
Image2.Picture.LoadFromFile(OpenpictureDialog1.FileName);
end;
end;
procedure TForm1.Button2Click(Sender: TObject); // Button2 ile dairesel şekil verdiğim (100x100 px) resimi, büyük resim üzerine kopyalıyorum.
var myBmp : TBitmap;
begin
if OpenpictureDialog1.Execute then
begin
Image3.Picture.LoadFromFile(OpenpictureDialog1.FileName); //Küçük boyutlu 100x100px resimi yüklüyorum
Image2.Left:=10; Image2.Top:=10;
myBmp := TBitmap.create;
if assigned( myBmp) then with myBmp do
try
Image3.width := 100;
Image3.height := 100;
canvas.brush.color := clMenu;
transparent := true;
width := Image3.picture.width;
height := Image3.picture.height;
canvas.brush.color := clBlack;
canvas.pen.color := clBlack;
canvas.ellipse(0,0, 100,100);
Image3.stretch:=true;
transparentColor := clBlack;
Image3.picture.bitmap.canvas.draw(0,0, myBmp);
Image3.Transparent:=true;
finally
myBmp.free;
end;
end;
end;
Şimdi sorun burada başlıyor. Image2'deki bu resimi Image1'e nasıl gönderebilirim ve image 1'i nasıl bitmap olarak kaydedebilirim.
Image1.picture := Image2.picture //Image2'deki resimi kopyalamadan Image1'e gönderiyor.
Re: Kopyalama hatası
Merhaba,
Benim kod örneğinden anladığım siz üst üste bindirilmiş resmi Image3 içinde hazırlıyorsunuz.
Image1 içine Image3 içindeki resmi kopyalamanız gerekli, diye anlıyorum.
Ek olarak kod ile ilgili olarak aşağıdaki satır gereksiz.
Bir önceki satırda TBitmap.Create hata alırsa zaten sonraki kodlar çalışmaz. İşleyiş orada durur.
Benim kod örneğinden anladığım siz üst üste bindirilmiş resmi Image3 içinde hazırlıyorsunuz.
Image1 içine Image3 içindeki resmi kopyalamanız gerekli, diye anlıyorum.
Ek olarak kod ile ilgili olarak aşağıdaki satır gereksiz.
Kod: Tümünü seç
if assigned(myBmp) then
Re: Kopyalama hatası
Değerli arkadaşım. İlgilendiğiniz için çok teşekkür ederim.
Evet siz doğru anlıyorsunuz. Yani iki farklı resimi birbiri üzerine bindirmek ve sonra bir klasöre kaydetmek istiyorum.
Button2 ile bu uygulamayı yapıyorum. Lakin klasöre kopyalama olmuyor.
Evet siz doğru anlıyorsunuz. Yani iki farklı resimi birbiri üzerine bindirmek ve sonra bir klasöre kaydetmek istiyorum.
Button2 ile bu uygulamayı yapıyorum. Lakin klasöre kopyalama olmuyor.
Re: Kopyalama hatası
Siz Image2 içine yüklediğiniz resmi hiç kullanmıyorsunuz.
Image1 içinde resim varsa kodlarda bu bilinmiyor. O da hiç kullanılmıyor.
Sadece Image3'ü transparan olarak myBmp içine yazıyorsunuz. Onuda tekrar Image3 içine geri kaydediyorsunuz.
Image1 içinde resim varsa kodlarda bu bilinmiyor. O da hiç kullanılmıyor.
Sadece Image3'ü transparan olarak myBmp içine yazıyorsunuz. Onuda tekrar Image3 içine geri kaydediyorsunuz.
Re: Kopyalama hatası
Değerli arkadaşım; kodları yazarken hata yapmış olabilirim. Yapmak istediğim şey iki bitmap'dan birini diğerinin üzerine transparent olarak yapıştırmak ve sonrada bir klasöre kaydetmek. Yapamadık.
Re: Kopyalama hatası
Aşağıdaki şekilde deneyebilir misiniz?
Resimler 100x100 dediğiniz için ayrıca boyutlandırma yok örnek kod içinde.
Resimler 100x100 dediğiniz için ayrıca boyutlandırma yok örnek kod içinde.
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
var
LBmp1 : TBitmap;
LBmp2: TBitmap;
begin
LBmp1 := nil;
LBmp2 := nil;
try
LBmp1 := TBitmap.Create;
LBmp1.LoadFromFile('C:\Users\User\Downloads\R1.bmp');
LBmp1.Transparent := True;
LBmp1.TransparentMode := tmAuto;
LBmp2 := TBitmap.Create;
LBmp2.LoadFromFile('C:\Users\User\Downloads\R2.bmp');
LBmp2.Transparent := True;
LBmp2.TransparentMode := tmAuto;
LBmp2.Canvas.Draw(0, 0, LBmp1);
LBmp2.SaveToFile('C:\Users\User\Downloads\r_transparan.bmp');
Image1.Picture.Bitmap.LoadFromFile('C:\Users\User\Downloads\r_transparan.bmp');
finally
LBmp1.Free();
LBmp2.Free();
end;
end;
Re: Kopyalama hatası
Değerli arkadaşım. Kod çok güzel çalışıyor. Eline ve emeğine sağlık. Delphi'nin hangi sürümünü kullanıyorsunuz. Zira 7'den artık kurtulmak istiyorum. Aydınlatıcı bilgiler için tekrar çok teşekkür ederim.
Re: Kopyalama hatası
Ben en son sürümünü 12.2 kullanıyorum.
Re: Kopyalama hatası
Değerli arkadaşım. Verdiğin bilgiler için çok teşekkür ederim.
Kod güzel çalışıyor. Ben uygulamada sıkıntı yaşadım. '2.ci resim aynı boyutta ve saydam olarak kopyalanır ise sorun yok.
Ama boyutu büyültür yada küçültürsem saydamlık özelliği kayboluyor. Bunu nasıl düzeltebilirim. Yardımcı olursanız çok memnun olurum. Teşekkürler
Kod güzel çalışıyor. Ben uygulamada sıkıntı yaşadım. '2.ci resim aynı boyutta ve saydam olarak kopyalanır ise sorun yok.
Ama boyutu büyültür yada küçültürsem saydamlık özelliği kayboluyor. Bunu nasıl düzeltebilirim. Yardımcı olursanız çok memnun olurum. Teşekkürler