Canvas Metodunda Kopyalama Sorunları

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
Yavuz
Üye
Mesajlar: 115
Kayıt: 09 Haz 2005 03:10

Canvas Metodunda Kopyalama Sorunları

Mesaj gönderen Yavuz »

1
Hem Image hem de JVImage nesneleri canvas olayında (bir bölgeyi kopyalamak için ) içerdikleri resmim illaki de BMP olmasını istiyorlar ben
se JPG kullanacağım. Canvas olayı

Kod: Tümünü seç

(Image2.Canvas.copyrect(rect vs,vs),Image1.canvas,rect(vs vs))
sadece BMP yi destekliyor. Benzer işlemi JPG için nasıl yapabilirim ?

2
Bir image içindeki resim önceden tasarım halinde eklenmişse

Kod: Tümünü seç

Image1.Picture.SaveToFile('C:\aa.jpg')
şeklinde diske kaydedilebiliyor ancak çalışma anında canvas metoduyla image içine alınmışna bu şekilde diske
kopyalama işlemi gerçekleşmiyor
canva metoduyla image içine alınan resimler (JPG) diske nasıl kaydedilir ?

3
Sorular fazla olmadıysa bide img içindeki resimler büyük olduğunda bazı işlemler yapılırken titremeler oluyor. Bir gün bir yerlerde bunu engelleyen bir yöntemi içeren bir projeyi (VB de yazılmış) görmüştüm. Aynı işi delphide yapan bir yöntem var mı ?

Teşekkürler ....
Kullanıcı avatarı
Opt2000
Üye
Mesajlar: 216
Kayıt: 09 Tem 2003 10:04

Canvas üzerine bilgi...

Mesaj gönderen Opt2000 »

Selam,

Öncelikle Canvas sadece BMP dosyaları için çalışır. Senin asıl sorunun da bununla ilgili. Eğer JPEG resimleri ile çalışmak istiyorsan, önce JPEG resmi BMP'ye çevir. Bütün işlemler bittikten sonra da BMP'ye tekrar JPEG'e çevir. BMP-JPEG ve JPEG-BMP çevirim kodlarını sanırım internette her yerde bulursun. Elimde hazırda olmadığı için örnek kod gönderemiyorum.

Kolay gelsin,
Bahadır Alkaç
Kullanıcı avatarı
Yavuz
Üye
Mesajlar: 115
Kayıt: 09 Haz 2005 03:10

Mesaj gönderen Yavuz »

Format değişimi yaptıktan sonra kaydetme işlemi geçekleşti. (Teşekkürler...)

İmage içine tasarım modunda büyük bir resim yerleştiğnde bunu ScrollBox içine atıp kaydırma çubukları ile gezinti yapılabiliyor. Ancak resmi "canvas" yardımıyla attığımızda kaydırma çubukları oluşmuyor. Bunu nasıl halledebilirim ?

Teşekkürler ...
Kullanıcı avatarı
Opt2000
Üye
Mesajlar: 216
Kayıt: 09 Tem 2003 10:04

ScrollBox

Mesaj gönderen Opt2000 »

Selam,

ScrollBox'ın çalışmamasının sebebi, TImage nesnesinin boyutları ile ilgili. ScrollBox, üzerine konan bileşenlere göre scroll'ları ayarlıyor. Yani TImage nesnesinin, Picture boyutu önemli değil. Yapman gereken TImage'in boyutlarını, resmin boyutlarına göre değiştirmek.

Image1.Width:=Image1.Picture.Bitmap.Width;
Image1.Height:=Image1.Picture.Bitmap.Height;

Bu arada ufak bir not daha. Canvas'ın üzerine bir boyama işlemi yaptığın zaman, Bitmap'in boyutu değişmez. Buna dikkat etmen gerekir. Yani ,Canvas üzerine senin resminin iki katı büyüklüğünde bir resim kopyaladın diyelim. Bu kopyalama işleminden önce, resmin boyutunu ayarlaman gerekir. Kopyalama işleminden sonra da TImage'in boyutunu, resmin boyutuna ayarlaman gerekir. (Stretch vs kullanmıyorsan). Gereksiz bir not olduysa kusura bakma

Kolay gelsin,
Bahadır Alkaç
Kullanıcı avatarı
Yavuz
Üye
Mesajlar: 115
Kayıt: 09 Haz 2005 03:10

Mesaj gönderen Yavuz »

Ne demek ?

Her şey için herkese çok teşekkürler ...
Cevapla