jpgresim: Tjpegimage;
blobalan: TBlobStream;
hafiza: Tmemorystream;
begin
if OpenDialog1.Execute then
Image1.Picture.LoadFromFile(OpenDialog1.FileName);
with IBDataSet1 do
begin
Insert;
jpgresim:=TJpegImage.Create;
jpgresim.assign(Image1.Picture.bitmap);
hafiza:=TMemoryStream.Create;
jpgresim.savetostream(hafiza);
blobalan:=TBlobStream.Create(TGraphicField(FieldByName('resim')), bmWrite);
blobalan.copyfrom(hafiza,0);
blobalan.free;
hafiza.free;
jpgresim.free;
end;
ancak TBlobStream için USES e bişiler eklenecek zannedersem
bu kod uygun mudur ? Uses e ne eklemeliyim ? Başka türlü nasıl yükleme yapılabilir ?
Veri tabanına döngü içinde resim eklediğimden (JPG olarak) bu işi kod ile yapmam gerekti.
verdiğiniz kodu direk kullanmak yerine dönüşüm yaptırmam gerekti;
İmage1 de BMP var
onu jpg ye onuda image2 e atmam gerekti
onu da VT ye kaydedebildim ...
Kodlarla Jpeg veritabanına Bmp Formatı boyutunda yazıyor.Yani ne yaparsanız yapın jpeg kaydediyor gibi gözüküyor ama Bmp formatında yazıyor.Böyle Uğraşacağınıza JEDI'nin JvDBImagesini Kullanın Çok basit şekilde jpg olarak veritabanına yazıyor.Byte olarak karşılaştırın farkı göreceksiniz. iyi çalışmalar.