resim göstermede sorun

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

resim göstermede sorun

Mesaj gönderen erdogan_ozkaya »

Arkadaşlar,

XE8 de androide resmi aşağıdaki kod ile sql kaydediyorum,

Kod: Tümünü seç

procedure TForm1.KAYDETClick(Sender: TObject);
var
  Field: TBlobField;
  RESIM: TStream;
begin
  if DEVRIYE_HAREKETLERI_DB.Active and (Image1.Bitmap <> nil) then
  begin
    DEVRIYE_HAREKETLERI_DB.Insert;
    Field := TBlobField(DEVRIYE_HAREKETLERI_DB.FieldByName('RESIM1'));
    RESIM := DEVRIYE_HAREKETLERI_DB.CreateBlobStream(Field, bmWrite);
    try
      Image1.Bitmap.SaveToStream(RESIM);
    finally
      RESIM.Free;
      DEVRIYE_HAREKETLERI_DB.Post;
    end;
  end;
end;
Bu kod ilede Delphi 7 de göstermek istiyorum ama hata veriyor ? SQL2012 de alan alan türü "image"

Kod: Tümünü seç

procedure TForm1.btn1Click(Sender: TObject);
var
  Field: TBlobField;
  RESIM: TStream;
  Jpg: TJPEGImage;
begin
  if QRY_RESIMLER_DB.Active then
  begin
    Field := TBlobField(QRY_RESIMLER_DB.FieldByName('RESIM1'));
    RESIM := QRY_RESIMLER_DB.CreateBlobStream(Field, bmRead);
    Jpg := TJPEGImage.Create;
    try
      Jpg.LoadFromStream(RESIM);
      img1.Picture.Graphic := Jpg;
    finally
      img1.Free;
      RESIM.Free;
    end;
  end;
end;
heta mesajı
Resim

acaba yanlış olan nedir ?

teşekkürler
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Re: resim göstermede sorun

Mesaj gönderen adelphiforumz »

bitmap olarak kaydedip bitmap olarak oku sonrasında jpg formatına dönüştür.
birde hatırladığım kadarı ile aşağıdakine benzer bir kodlada okuyabilirsin

TImage(Component).Picture.Graphic.LoadFromStream(Query.CreateBlobStream(Query.FieldByName('FieldName'), bmRead))
En son adelphiforumz tarafından 03 Eki 2016 02:02 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: resim göstermede sorun

Mesaj gönderen erdogan_ozkaya »

şöylede denedim ama hatada vermiyor göstermiyor da

Kod: Tümünü seç

procedure TForm1.btn1Click(Sender: TObject);
var
  RESIM : TMemoryStream;
begin

  RESIM:=TMemoryStream.Create;
  TBlobField(QRY_RESIMLER_DB.FieldByName('RESIM1')).SaveToStream(RESIM);
  img1.Picture.Bitmap.LoadFromStream(RESIM);
  RESIM.Free;
end;
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: resim göstermede sorun

Mesaj gönderen erdogan_ozkaya »

buda hata verdi read of die

Kod: Tümünü seç

procedure TForm1.btn3Click(Sender: TObject);

begin
TImage(img1).Picture.Graphic.LoadFromStream(QRY_RESIMLER_DB.CreateBlobStream(QRY_RESIMLER_DB.FieldByName('RESIM1'), bmRead))

end;
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: resim göstermede sorun

Mesaj gönderen erdogan_ozkaya »

valla bir türlü çözemedim ya bir sürü şey denedim :(
ertank
Kıdemli Üye
Mesajlar: 1716
Kayıt: 12 Eyl 2015 12:45

Re: resim göstermede sorun

Mesaj gönderen ertank »

Merhaba,

Jpeg error 53 anlamı yetersiz hafıza dır. Aynı hatayı içeriği bozulmuş Jpeg dosyaları için de alırsınız. Bu anlamda Jpeg kayıt kodlarınızı incelemenizde fayda var. Sorunun kaynağı database içine saklama kısmında olması yüksek ihtimal.
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: resim göstermede sorun

Mesaj gönderen erdogan_ozkaya »

Teşekkürler.

yani adroidde kaydederken sorun olabilir diyorsunuz ?
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: resim göstermede sorun

Mesaj gönderen erdogan_ozkaya »

bir türlü çözemedim ya yardımcı olabilecek arkadaş varmı acaba ?

amacım xe8 androidde resim çekip sql kaydedip daha sonra delphi 7 de resmi göstermek

teşekkürler
ertank
Kıdemli Üye
Mesajlar: 1716
Kayıt: 12 Eyl 2015 12:45

Re: resim göstermede sorun

Mesaj gönderen ertank »

erdogan_ozkaya yazdı:Arkadaşlar,

XE8 de androide resmi aşağıdaki kod ile sql kaydediyorum,

Kod: Tümünü seç

procedure TForm1.KAYDETClick(Sender: TObject);
var
  Field: TBlobField;
  RESIM: TStream;
begin
  if DEVRIYE_HAREKETLERI_DB.Active and (Image1.Bitmap <> nil) then
  begin
    DEVRIYE_HAREKETLERI_DB.Insert;
    Field := TBlobField(DEVRIYE_HAREKETLERI_DB.FieldByName('RESIM1'));
    RESIM := DEVRIYE_HAREKETLERI_DB.CreateBlobStream(Field, bmWrite);
    try
      Image1.Bitmap.SaveToStream(RESIM);
    finally
      RESIM.Free;
      DEVRIYE_HAREKETLERI_DB.Post;
    end;
  end;
end;
Bu kod ilede Delphi 7 de göstermek istiyorum ama hata veriyor ? SQL2012 de alan alan türü "image"

Kod: Tümünü seç

procedure TForm1.btn1Click(Sender: TObject);
var
  Field: TBlobField;
  RESIM: TStream;
  Jpg: TJPEGImage;
begin
  if QRY_RESIMLER_DB.Active then
  begin
    Field := TBlobField(QRY_RESIMLER_DB.FieldByName('RESIM1'));
    RESIM := QRY_RESIMLER_DB.CreateBlobStream(Field, bmRead);
    Jpg := TJPEGImage.Create;
    try
      Jpg.LoadFromStream(RESIM);
      img1.Picture.Graphic := Jpg;
    finally
      img1.Free;
      RESIM.Free;
    end;
  end;
end;
heta mesajı
Resim

acaba yanlış olan nedir ?

teşekkürler
Merhaba,

Aşağıdaki şekilde deneyebilir misiniz?

Cihaz tarafındaki kod:

Kod: Tümünü seç

procedure TForm1.KAYDETClick(Sender: TObject);
var
  MemoryStream: TMemoryStream;
begin
  if DEVRIYE_HAREKETLERI_DB.Active and (Image1.Bitmap <> nil) then
  begin
    MemoryStream := TMemoryStream.Create();
    try
      Image1.Bitmap.SaveToStream(MemoryStream);
      MemoryStream.Seek(0, 0);
      DEVRIYE_HAREKETLERI_DB.Insert;
      TBlobField(DEVRIYE_HAREKETLERI_DB.FieldByName('RESIM1').LoadFromStream(MemStream);
      DEVRIYE_HAREKETLERI_DB.Post;
    finally
      MemoryStream.Free();
    end;
  end;
end;
PC tarafındaki kod:

Kod: Tümünü seç

procedure TForm1.btn1Click(Sender: TObject);
var
  Stream: TStream;
begin
  Stream := QRY_RESIMLER_DB.CreateBlobStream(QRY_RESIMLER_DB.FieldByName('RESIM1'), bmRead);
  try
    Image1.Picture.Bitmap.LoadFromStream(Stream);
  finally
    Stream.Free();
  end;
end;
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: resim göstermede sorun

Mesaj gönderen erdogan_ozkaya »

Hocam Teşekkürler Cevabınız için


bu kodda .LoadFromStream(MemStream); burada hata veriyor bunu çalıştıramadığım için diğer koduda deneyemiyorum fakat eski kaydettiğim resimleri açmıyor.

bitmap image is not valid hatası veriyor.

Kod: Tümünü seç

procedure TForm1.KAYDETClick(Sender: TObject);
var
  MemoryStream: TMemoryStream;
begin
  if DEVRIYE_HAREKETLERI_DB.Active and (Image1.Bitmap <> nil) then
  begin
    MemoryStream := TMemoryStream.Create();
    try
      Image1.Bitmap.SaveToStream(MemoryStream);
      MemoryStream.Seek(0, 0);
      DEVRIYE_HAREKETLERI_DB.Insert;
      TBlobField(DEVRIYE_HAREKETLERI_DB.FieldByName('RESIM1').LoadFromStream(MemStream);
      DEVRIYE_HAREKETLERI_DB.Post;
    finally
      MemoryStream.Free();
    end;
  end;
end;
ertank
Kıdemli Üye
Mesajlar: 1716
Kayıt: 12 Eyl 2015 12:45

Re: resim göstermede sorun

Mesaj gönderen ertank »

.LoadFromStream(MemoryStrem) şeklinde değiştirip deneyebilirsiniz.
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: resim göstermede sorun

Mesaj gönderen erdogan_ozkaya »

MemoryStrem alakalı değil LoadFromStream bunu açmıyor :(
hata aynı devam ediyor
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: resim göstermede sorun

Mesaj gönderen erdogan_ozkaya »

bilgisi olan varmı acaba ?

teşekkürler
ertank
Kıdemli Üye
Mesajlar: 1716
Kayıt: 12 Eyl 2015 12:45

Re: resim göstermede sorun

Mesaj gönderen ertank »

erdogan_ozkaya yazdı:fakat eski kaydettiğim resimleri açmıyor.
Yeni kod kullanarak kaydettiklerinizi açıyor mu acaba?
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: resim göstermede sorun

Mesaj gönderen erdogan_ozkaya »

androidde kaydediyorum ama delphi7 de gösteremiyorum :(

delphi7 de kaydedip gösteriyorum
Cevapla