TdxPNGIMage i Bitmap a Dönüştürmek

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

TdxPNGIMage i Bitmap a Dönüştürmek

Mesaj gönderen vkamadan »

Merhabalar ,
TImage nesnesine PNG dosyası yüklediğimde Picture özelliği TdxPNGIMage olarak değişiyor, ben yüklediğim PNG yi işleye bilmek için Bitmap a çevirmek istiyorum TdxPNGImage içinde ConvertBitmap prosedürü var PNG yi yükleyip bitmap işlemlerine başlamadan önce çağırınca Access Violation ile kırılıyor. sonuç olarak PNG bir resmi Bitmap a çevirmek istiyorum.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: TdxPNGIMage i Bitmap a Dönüştürmek

Mesaj gönderen sabanakman »

Eğer TdxPNGIMage sınıfı TGraphic sınıfından türetilmiş ise

Kod: Tümünü seç

var Bmp:TBitmap;
begin
  Bmp:=TBitmap.Create;
  Bmp.Assign(dxPNGIMage );
şeklinde çevrilebilmesi gerekmektedir. Dosya olarak ise Bmp.SaveToFile metodu kullanılabilir.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: TdxPNGIMage i Bitmap a Dönüştürmek

Mesaj gönderen vkamadan »

@sabanakman ,
TdxPNGImage bir kaç kademe yukarıda sonunda TGraphic e varıyor , fakat belirttiğiniz yöntemi şöyle uyguladığımda atayamayacağımı söylüyor Connot Assign a TPicture to a TBitmap

Formda TImage nesnem var, içine PNG yüklediğimde Picture özelliği TdxPNGImage ye dönüşüyor (IDE öyle gösteriyor) bende sizin belirttiğiniz şekilde

Kod: Tümünü seç

procedure TForm1.Button3Click(Sender: TObject);
var
 a: TBitmap ;
begin
  try
     a := TBitmap.Create;
     a.Assign(  TdxPNGImage(Image1.Picture) ); // Burada kırılıyor..
     a.SaveToFile( 'c:\a.bmp' );
     ShowMessage('OK');
  finally
     a.Free ;
  end;

end;
ayrıca

Kod: Tümünü seç

a.Assign(  Image1.Picture.Bitmap );
olarak denediğim de boş bir Bitmap oluşluşuyor..
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: TdxPNGIMage i Bitmap a Dönüştürmek

Mesaj gönderen vkamadan »

TdxPNGImage içinde SaveToStreamByCodec metodu yüklenen PNG yi desteklediği dosya formatlarına Stream olarak kaydediyormuş aşağıdaki yapıyla dönüşümü yaptım.

Kod: Tümünü seç

procedure TForm1.Button3Click(Sender: TObject);
var
 a: TdxPNGImage ;
 s : TFileStream ;
begin
  try
     a := TdxPNGImage.Create;
     s := TFileStream.Create( 'c:\a.bmp' , fmCreate );
     s.Position := 0;
     a.Assign(  Image1.Picture );
     a.SaveToStreamByCodec(s , dxImageBitmap);
  finally
     a.Free ;
     s.Free;
  end;
end;
Volkan KAMADAN
www.polisoft.com.tr
Cevapla