sevgili programcı arkadaşlar windowstaki gibi delphide image nesnesi üzerinde kes kopyala yapıştır işlemlerini nasıl kullanabilirim kod olarak yazarsanız memnun olurum
bilmiyorum formda arattım ancak bulamadım belki dogru anahtar kelimeyi kullanmamıştırım
eğer varsa form kurallarına uymadıgım için özür dilerim
TImage nesnesinden mouse ile resim kopyala yapıştır yapma
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
TImage nesnesinden mouse ile resim kopyala yapıştır yapma
En son samety tarafından 17 Ara 2005 05:27 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Selam...
- Yaklaşımınızdan dolayı tebrik ederim. Önce arama yapma alışkanlığının azaldığı günler yaşıyorduk.
- "windows türü" olarak belirlediğiniz konu başlığınızı da soruya yönelik kısa bir özet şeklinde değiştirirseniz, arama yapan diğer arkadaşların da buldukları sonuçlar arasında kolayca seçebilmesini sağlamış olursunuz. Mesela "TImage nesnesinden mouse ile resim kopyala yapıştır yapma hk." gibi...
- Sorunuzun cevabı gelince... TImage nesnesine koyduğunuz resim türünün TBitmap tipinde olması bu işlem için gerekli diyebilirim.
- Şimdi DivXTurk projesinde kullandığım üçüncü parti bir componente ihtiyaç olmaksızın bir TImage nesnesine TBitmap formatında; BMP, JPG ve GIF yüklemek için hazırladığım fonksiyonu yazıyorum...
- Buradan çıkacak ders, aslında Delphi'de olmadığı söylenen GIF desteğinin dolaylı yollarda native olarak var olduğunu kanıtlanmasıdır.. TOleGraphic tipinde bir değişkene GIF yükleyebilir ve bunu dilediğiniz gibi kullanabilirsiniz.
- Bu aşamaya kadar neyi sağladık. Bu üç resim formatını ve dilerseniz nicelerini TBitmap formunda TImage nesnesine koyduk.
- Bundan sonra standart TImage.Bitmap.Canvas operasyonları ile dilediğiniz yeri kesip-biçip, dilediğiniz yere yapıştırabilirsiniz...
- Bunu da nasıl yaparım diye sormayınız, forumda Canvas işlemleriniden bir sürü var... Arama yaparken kriter olarak canvas copyrect deyip "Bütün terimler için ara" dialoğunu seçin.
- Hep derim ya, yazılım sanatının püfünde ilüzyonu, en üstte tutarım...
Seçim yapılan bölgeyi de belirlemek için boyutu değişen bir nesne üretebilirsiniz. Gerisi hayal gücünüze kalmış...
- Başarılar..

- Yaklaşımınızdan dolayı tebrik ederim. Önce arama yapma alışkanlığının azaldığı günler yaşıyorduk.

- "windows türü" olarak belirlediğiniz konu başlığınızı da soruya yönelik kısa bir özet şeklinde değiştirirseniz, arama yapan diğer arkadaşların da buldukları sonuçlar arasında kolayca seçebilmesini sağlamış olursunuz. Mesela "TImage nesnesinden mouse ile resim kopyala yapıştır yapma hk." gibi...
- Sorunuzun cevabı gelince... TImage nesnesine koyduğunuz resim türünün TBitmap tipinde olması bu işlem için gerekli diyebilirim.

- Şimdi DivXTurk projesinde kullandığım üçüncü parti bir componente ihtiyaç olmaksızın bir TImage nesnesine TBitmap formatında; BMP, JPG ve GIF yüklemek için hazırladığım fonksiyonu yazıyorum...

- Buradan çıkacak ders, aslında Delphi'de olmadığı söylenen GIF desteğinin dolaylı yollarda native olarak var olduğunu kanıtlanmasıdır.. TOleGraphic tipinde bir değişkene GIF yükleyebilir ve bunu dilediğiniz gibi kullanabilirsiniz.
Kod: Tümünü seç
Procedure ResimYukle(Var Resim:TImage);
Var
DosyaAc : TOpenDialog;
Jpeg : TJpegImage; // Uses JPEG
FileStream : TFileStream;
Gif : TOleGraphic; // Uses AxCtrls
Bitmap : TBitmap;
begin
DosyaAc := TOpenDialog.Create(Nil);
With DosyaAc do
begin
Title := 'Dosya Açma Penceresi';
Filter := 'BMP Dosyalar|*.BMP|JPG Dosyalar|*.JPG|GIF Dosyalar|*.GIF';
FilterIndex := 0;
if Execute then
begin
case FilterIndex of
1: Resim.Picture.LoadFromFile(FileName);
2: begin
JPeg := TJpegImage.Create;
JPeg.LoadFromFile(FileName);
Resim.Picture.Bitmap.Assign(JPeg);
JPeg.Free;
end;
3: begin
FileStream := TFileStream.Create(FileName, fmOpenRead or fmSharedenyNone);
Gif := TOleGraphic.Create;
Gif.LoadFromStream(FileStream);
Resim.Picture.Assign(Gif); // Geçici olarak kullanıyoruz...
Gif.Free;
FileStream.Free;
Bitmap := TBitmap.Create;
Bitmap.Width := Resim.Picture.Width;
Bitmap.Height := Resim.Picture.Height;
//Transparan bir renk de belirleyebilirsiniz.. :)
//-----------------------------------------------
//Bitmap.Transparentcolor:=clBlack;
//Bitmap.Transparent :=True;
Bitmap.Canvas.Draw(0, 0, Resim.Picture.Graphic);
Resim.Picture.Graphic := Bitmap; // Şimdi Bitmap oldu...
Bitmap.Free;
end;
end; // Case
end; // if Execute
free;
end; // With
end;
- Bundan sonra standart TImage.Bitmap.Canvas operasyonları ile dilediğiniz yeri kesip-biçip, dilediğiniz yere yapıştırabilirsiniz...
- Bunu da nasıl yaparım diye sormayınız, forumda Canvas işlemleriniden bir sürü var... Arama yaparken kriter olarak canvas copyrect deyip "Bütün terimler için ara" dialoğunu seçin.

- Hep derim ya, yazılım sanatının püfünde ilüzyonu, en üstte tutarım...

- Başarılar..

En son mrmarman tarafından 18 Ara 2005 08:30 tarihinde düzenlendi, toplamda 2 kere düzenlendi.
@samety
derken oraya remark ile Uses'a eklemen gereken unit'i boşuna koymadım.... Sen Uses satırına AxCtrls koyacaksın ki bu TOleGraphic nedir ne değildir Delphi bilebilsin...
- Alınacak ders : Delphi'de her type/function/const vs. ilgili kütüphanede bulunur. Sen ilgilendiğin bir type ile ilgili kütüphaneyi Uses'a eklemezsen, delphi sendeki gibi tanımlayamadığına dair hata mesajı vererek seni uyarır. Sen de ilgili kütüphaneyi -ki örneğimizde AxCTRLS oluyor- Uses satırına eklersen sorun ortadan kalkacaktır...
Kod: Tümünü seç
Gif : TOleGraphic; // Uses AxCtrls
- Alınacak ders : Delphi'de her type/function/const vs. ilgili kütüphanede bulunur. Sen ilgilendiğin bir type ile ilgili kütüphaneyi Uses'a eklemezsen, delphi sendeki gibi tanımlayamadığına dair hata mesajı vererek seni uyarır. Sen de ilgili kütüphaneyi -ki örneğimizde AxCTRLS oluyor- Uses satırına eklersen sorun ortadan kalkacaktır...