Hareketli GIF uzantılı dosyaların delphide kullanılması?
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 75
- Kayıt: 19 Eyl 2003 09:50
- Konum: ANKARA
Hareketli GIF uzantılı dosyaların delphide kullanılması?
Hareketli GIF uzantılı dosyaların delphide kullanılması nasıl gerceklestırırız.
bunun için bir bilesen mi gerekıyor , yoksa kodla bu is tamam mı oluyor...
Teşekurler...
bunun için bir bilesen mi gerekıyor , yoksa kodla bu is tamam mı oluyor...
Teşekurler...
Merhaba,
rx Library içinde bu işi yapan bir bileşen vardı. http://www.torry.net
Rx Library artık geliştirilmiyor, Jedi VCL'in içine katıldı. Onu indirmek isterseniz http://www.delphi-jedi.org .
Kolay gelsin.
rx Library içinde bu işi yapan bir bileşen vardı. http://www.torry.net
Rx Library artık geliştirilmiyor, Jedi VCL'in içine katıldı. Onu indirmek isterseniz http://www.delphi-jedi.org .
Kolay gelsin.
-
- Üye
- Mesajlar: 75
- Kayıt: 19 Eyl 2003 09:50
- Konum: ANKARA
tesekurler
tesekur ederım. buldum. ama delphi 5 in bileseni yok. sanırım bu gidisle 6 ı kuracam. tekrar tesekur ederım.
- mehmet_turecan_cakmak
- Üye
- Mesajlar: 132
- Kayıt: 02 Tem 2003 01:08
- Konum: Afyon
- İletişim:
hareketli gif
selam...
mustafa hocam bunu normal bir image nesnesi kullanarak yapamazmıyız yani hareketli gif resmini image göstermezmi...
kolay gele...
mustafa hocam bunu normal bir image nesnesi kullanarak yapamazmıyız yani hareketli gif resmini image göstermezmi...
kolay gele...
Animated Gif ve Jpeg gibi resim formatlarini hem veritabaninda saklamak hem de TImage ile gosterebilmek icin soyle bir kod kullaniyorum.
Secilen dosyayi ilgili tabloya kaydetmek icin:
Tabloya atilan resmin tablo uzerinde hareket ettikce TImage ile gorunebilmesi icin de
Burada kullanılan compeonent isimlerinin ilk 3 harflerinden ne tur componentler oldugu tahmin edilir saniyorum. kullnadigim 2 fonksiyon da su sekilde:
Secilen dosyayi ilgili tabloya kaydetmek icin:
Kod: Tümünü seç
DTM_MAIN.OPD_RESIM.Filter:='jpeg ,gif ve bitmap formatındaki resimler|*.jpg;*.gif;*.bmp';
if (DTM_MAIN.OPD_RESIM.Execute) then
begin
DTM_MUSTERI.QRY_MUSTERI.open;
IMG_MUSTERI_FOTOGRAF.Picture.LoadFromFile(DTM_MAIN.OPD_RESIM.FileName);
UpdateField(IMG_MUSTERI_FOTOGRAF.Picture.Graphic, DTM_MUSTERI.QRY_MUSTERIFOTOGRAF);
end;
Kod: Tümünü seç
if ((Field <> nil) and (Field <> QRY_MUSTERIFOTOGRAF)) or
((QRY_MUSTERIFOTOGRAF.DataSet.State <> dsBrowse) and (QRY_MUSTERIFOTOGRAF.DataSet.State <> dsInsert)) or (FRM_MUSTERI=nil) then
Exit;
GetImage(QRY_MUSTERIFOTOGRAF,FRM_MUSTERI.IMG_MUSTERI_FOTOGRAF);
Kod: Tümünü seç
procedure UpdateField(Graphic: TGraphic; VAR_BLOB_FIELD:TBlobField);
var
Stream : TStream;
Header : TGraphicHeader;
begin
VAR_BLOB_FIELD.DataSet.Edit;
Stream := VAR_BLOB_FIELD.DataSet.CreateBlobStream(VAR_BLOB_FIELD, bmWrite);
try
// TBitmaps are saved in a special format which is compatible with
// the TDBImage component...
if (Graphic is TBitmap) and
((VAR_BLOB_FIELD.DataType = ftGraphic) or (VAR_BLOB_FIELD.DataType = ftTypedBinary)) then
begin
Stream.Write(Header, SizeOf(Header));
Graphic.SaveToStream(Stream);
Header.Count := 1;
Header.HType := $0100;
Header.Size := Stream.Position - SizeOf(Header);
Stream.Position := 0;
Stream.Write(Header, SizeOf(Header));
end else
// ...all other image formats are just saved to the BLOB stream
Graphic.SaveToStream(Stream);
finally
Stream.Free;
end;
VAR_BLOB_FIELD.DataSet.Refresh;
end;
procedure GetImage(VAR_BLOB_FIELD:TBlobField; VAR_IMAGE:TImage);
var
Stream : TStream;
Size : integer;
Header : TGraphicHeader;
Signature : pointer;
i : integer;
Image : TGraphic;
Name : string;
begin
Image := nil;
// Database cursor has moved - Update image
Stream := VAR_BLOB_FIELD.DataSet.CreateBlobStream(VAR_BLOB_FIELD, bmRead);
try
// Skip paradox image header
Size := Stream.Size;
if (Size >= SizeOf(TGraphicHeader)) then
begin
Stream.Read(Header, SizeOf(Header));
if (Header.Count <> 1) or (Header.HType <> $0100) or
(Header.Size <> Size - SizeOf(Header)) then
Stream.Seek(-SizeOf(Header), soFromCurrent);
end;
try
// Determine image type from file signature
for i := low(Signatures) to high(Signatures) do
begin
if (length(Signatures[i].Signature) > Size) then
continue;
// Read signature
GetMem(Signature, length(Signatures[i].Signature));
try
Stream.Read(Signature^, length(Signatures[i].Signature));
// Reposition stream cursor
Stream.Seek(-length(Signatures[i].Signature), soFromCurrent);
// Compare signatures
if (CompareMem(Signature, @Signatures[i].Signature[1], length(Signatures[i].Signature))) then
begin
Image := TGraphicHackClass(Signatures[i].ImageType).Create;
Name := Signatures[i].Name;
break;
end;
finally
Freemem(Signature);
end;
end;
// Force TImage to desired graphic type
// ImageFish.Picture.Graphic := Image;
VAR_IMAGE.Picture.Graphic := Image;
// Load image from stream
// if (ImageFish.Picture.Graphic <> nil) then
// ImageFish.Picture.Graphic.LoadFromStream(Stream);
if (VAR_IMAGE.Picture.Graphic <> nil) then
VAR_IMAGE.Picture.Graphic.LoadFromStream(Stream);
finally
Image.Free;
end;
finally
Stream.Free;
end;
end;
Biz de işyerinde Delphi 5 kullanıyoruz ve daha geçen hafta torry.net'ten indirip kurduk. Gir ve quick search kısmından "rx" diye arattır çıkar karşına.tesekur ederım. buldum. ama delphi 5 in bileseni yok. sanırım bu gidisle 6 ı kuracam.
Göstermez.mustafa hocam bunu normal bir image nesnesi kullanarak yapamazmıyız yani hareketli gif resmini image göstermezmi...
Kolay gelsin.
3.parti compoenet veya library'leri fazlaca kullaninca,Delphi ile mümkün olmadığı halde yapilan bir takim seylerin kaynağını da unutuyoruz. TImage ile Gif dosyalarini gosterebildiğimden emin olduğum icin Mustafa gösterilmez deyince bir kontrol edip yukaridaki kodu gonderdim. Fakat kontrol edince farkettim ki o kodun da calisabilmesi icin GIFImage.pas isimli bir baska dosyaya ihtiyac var. Uses listesine GIFImage yazilmasi gerekiyor. Bu dosyayi isteyene bu adresten alabilir.
http://www.mustafagundogan.com/fahrettin/GIFImage.zip
kolay gelsin...
http://www.mustafagundogan.com/fahrettin/GIFImage.zip
kolay gelsin...
s.a abilerim
bende delphide gif oynatmaya çalışıyorum
rx bileşenlerinden rxgifanimatör kullanarak gifi delphiye ekledim
gif 4 adet resimin ard arda oynatılması ile oluşturuldu explorer ile açınca normal oynuyo ama delphi ile açınca 4 adet resim ard arda gösterilmek sureti ile oynatılıyo yani görüntü adım adım gidiyo bunu nasıl halledebilirim
windows xp sp2 ve delphi 6 kullanıyorum
yardımlarınız için şimdiden teşekkürler
s.a
bende delphide gif oynatmaya çalışıyorum
rx bileşenlerinden rxgifanimatör kullanarak gifi delphiye ekledim
gif 4 adet resimin ard arda oynatılması ile oluşturuldu explorer ile açınca normal oynuyo ama delphi ile açınca 4 adet resim ard arda gösterilmek sureti ile oynatılıyo yani görüntü adım adım gidiyo bunu nasıl halledebilirim
windows xp sp2 ve delphi 6 kullanıyorum
yardımlarınız için şimdiden teşekkürler
s.a
Kainat dahi bir programdır ve şüphesiz onun bir programcısı vardır...
Bu GifImage.pas dosyası bu adresten edinilebilir. Bu arada Fahrettin Bey, forumdaki diğer bir mesajında, GifImage.pas'ı kullanabilmek için implementation bölümünün altında aşağıdaki tanımlamaların yapılması gerektiğini de yazmış:
Bu açıklamalar dahilinde dahi, Access veritabanından gif okutmayı başaramadım ama 
Kod: Tümünü seç
type
TGraphicHeader = record
Count: Word; { Fixed at 1 }
HType: Word; { Fixed at $0100 }
Size: Longint; { Size not including header }
end;
TGraphicHack = class(TGraphic);
TGraphicHackClass = class of TGraphicHack;
TImageSignature = record
ImageType: TGraphicClass;
Name: string;
Signature: string;
end;
const
Signatures: array[0..2] of TImageSignature
= ((ImageType: TBitmap; Name: 'Bitmap'; Signature: 'BM'),
(ImageType: TGIFImage; Name: 'GIF'; Signature: 'GIF'),
(ImageType: TJPEGImage; Name: 'JPEG';
Signature: chr($FF)+chr($D8)+chr($FF)+chr($E0)+chr($00)+chr($10)+'JFIF'));

-
- Üye
- Mesajlar: 42
- Kayıt: 04 Nis 2007 03:57
benimde şöle bir sorum tamam jedi paketi içerisinde bulunan gifanimator ile forma gif yerleştiriyorum ve gayet güzel çalışıyor yalnız yapamak istediğim şöyle mesela formun üzerine bir resim koyup bunu formun transperent özelliğini kullanarak sadece resmin şeklini almasını saglıyoruzya aynısını gif için yapabilirmiyiz form sadece gifin şeklini alsın aslında yapıyorum fakat gifin arka resmide görünüyor normal bir image nesnesi gibi olmuyor biraz karısık anlattım galiba şimdiden sagolun
-
- Üye
- Mesajlar: 42
- Kayıt: 04 Nis 2007 03:57
güzel kardeşim benim sorumu tam okumamışsın heralde zaten jvcxl kurulu ve gif dosyalarını oynatıyorum demek istediğim gif resmin hani bir arkaplanı vardır onun görünmesini istemiyorum veya şöyle anlatayım bir formun üzerine konulan resmin şeklini almasını için yaptıgımız işlemin aynısı gifler için mevcutmudur ben yapamadım yinede sagolun
ben sana yazmadımkisemenderip yazdı:güzel kardeşim benim sorumu tam okumamışsın heralde zaten jvcxl kurulu ve gif dosyalarını oynatıyorum demek istediğim gif resmin hani bir arkaplanı vardır onun görünmesini istemiyorum veya şöyle anlatayım bir formun üzerine konulan resmin şeklini almasını için yaptıgımız işlemin aynısı gifler için mevcutmudur ben yapamadım yinede sagolun

Gifler için mevcut olanı varmıdır bilmiyorum ama TMS Componentte advshaper var onda bmp yapabiliyon.
