Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
TImage ve Sql
#1
Video 
Merhaba Arkadaşlar,
Resimlerin dosya yolunu değil kendisini saklıyorum. DBImage değil TImage nesnesinde Jpg,Png,Bmp resimlerini yükleyebilmek, veritabanında image veritipli alana kaydetmek formdaki diğer nesneleri çekerken onuda çekmek istiyorum. Streamlerle bu işlemi yaptım Savede sıkıntı yok Load'da sıkıntı yaşıyorum hazır fonksiyon konusunda yardımcı olursanız sevinirim.
Yalnızım ama bir kente yürüyen ordu gibiyim, edebiyattan kaçınmalıyım..
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Cevapla
#2
Çalışan hazır kodlarımdan direk yapıştırıyorum..

var:
 ms: TMemoryStream;
 Surf: TBitmapSurface;
 saveParams : TBitmapCodecSaveParams;

begin
     ms := TMemoryStream.Create;
     Surf := TBitmapSurface.Create;
     Surf.Assign(image6.Bitmap);
     Saveparams.Quality := 100; //Bu kısımda resim boyutunu küçültebilir siniz..
     TBitmapCodecManager.savetostream(ms, Surf, '.jpg',@SaveParams);
     ms.Position := 0;
     TBlobField(MT.FieldByName('parca_res1')).LoadFromStream(ms);
     ms.Free;
     image6.Bitmap := nil;
     surf.Free;
end;
WWW
Cevapla
#3
Jpg formatında TImage nesnesine resim açma, Sql Kaydetme, Sql'den Yükleme işlemlerini gerçekleştiren yordamları biraz uğraş sonrası yaptım İhtiyacı olanlar için ;

Uses Jpeg;
{$R *.dfm}

procedure ResimSec(Image: TControl);
var
 SPicFileName: string;
 JP: TJPegImage;
 Pic: TPicture;
 Dialog: TOpenPictureDialog;
begin
 Dialog := TOpenPictureDialog.Create(nil);
 Dialog.Title := 'Resim Seç(Jpg)';
 if not((Image.ClassName = 'TDBImage') or (Image.ClassName = 'TImage')) then
   Exit;
 Dialog.Filter := '*.jpg|*.jpg';
 if Image.ClassName = 'TDBImage' then
   TDBImage(Image).Stretch := True
 else
   TImage(Image).Stretch := True;
 Try
   if Dialog.Execute then
   begin
     JP := TJPegImage.Create;
     Pic := TPicture.Create;
     SPicFileName := Dialog.FileName;
     Try
       JP.LoadFromFile(SPicFileName);
       Pic.Assign(JP);
       if Image.ClassName = 'TDBImage' then
         TDBImage(Image).Picture := Pic
       else
         TImage(Image).Picture := Pic;
     Finally
       JP.Free;
       Pic.Free;
     End;
   end;
 Finally
   Dialog.Free;
 End;
end;

procedure ResimKaydetSql(Image: TImage; Query: TADOQuery; Alan: String);
var
 Ms: TMemoryStream;
begin
 Query.Edit;
 if Image.Picture.Graphic = nil then
   Exit;
 Ms := TMemoryStream.Create;
 try
   Image.Picture.Graphic.SaveToStream(Ms);
   Ms.Position := 0;
   TBlobField(Query.FieldByName(Alan)).LoadFromStream(Ms);
 finally
   Ms.Free;
 end;
 Image.Picture := nil;
end;

procedure ResimYukleSql(Image: TImage; Query: TADOQuery; Alan: String);
var
 JPG: TJPegImage;
 Picture: TPicture;
 St: TStream;
begin
 JPG := TJPegImage.Create;
 Picture := TPicture.Create;
 St := TStream.Create;
 Image.Stretch:=True;
 try
   if Query.FieldByName(Alan).AsString='' then Exit;
   St := Query.CreateBlobStream(TBlobField(Query.FieldByName(Alan)), bmRead);
   try
     JPG.LoadFromStream(St);
     Picture.Graphic := JPG;
     Image.Picture := Picture;
   finally
     St.Free;
   end;
 finally
   JPG.Free;
   Picture.Free;
 end;
end;

(05-01-2018, Saat: 22:15)mcuyan Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlÇalışan hazır kodlarımdan direk yapıştırıyorum..

var:
 ms: TMemoryStream;
 Surf: TBitmapSurface;
 saveParams : TBitmapCodecSaveParams;

begin
     ms := TMemoryStream.Create;
     Surf := TBitmapSurface.Create;
     Surf.Assign(image6.Bitmap);
     Saveparams.Quality := 100; //Bu kısımda resim boyutunu küçültebilir siniz..
     TBitmapCodecManager.savetostream(ms, Surf, '.jpg',@SaveParams);
     ms.Position := 0;
     TBlobField(MT.FieldByName('parca_res1')).LoadFromStream(ms);
     ms.Free;
     image6.Bitmap := nil;
     surf.Free;
end;
Teşekkür Ederim.
Yalnızım ama bir kente yürüyen ordu gibiyim, edebiyattan kaçınmalıyım..
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Varbinary(MAX) Tipindeki Resim Dosyalarını Timage Kolay Gösterim pro_imaj 4 469 19-10-2017, Saat: 15:02
Son Yorum: pro_imaj
  timage scrollbar ve yakınlaştırma uzaklaştırma. Shou 2 1.396 24-01-2017, Saat: 09:53
Son Yorum: yhackup
  TImage yazıcıdan çıktır alma hk. emrekilinc1984 10 2.633 25-10-2016, Saat: 14:16
Son Yorum: emrekilinc1984



Konuyu Okuyanlar: 1 Ziyaretçi