PDA

View Full Version : سوال: مشکل با بازخوانی تصویر از دیتابیس با فرمت varbinery



kont_200
دوشنبه 29 تیر 1394, 17:37 عصر
من دیتابیسی دارم که در توسط C#‎ تصاویر وارد می شود و به صورت varbinery(max) در دیتابیس ذخیره می شود و می خواهم این تصاویر را در دلفی فراخوانی کنم و نمی شود لطفا راهنمایی نمایید با تشکر
کد C#‎ برای لود کردن تصاویر
byte[] signature = (byte[])Reader["paper"];
using (MemoryStream ms = new MemoryStream(signature))
{
ICanvas.Strokes = new Strokes(ms);
ms.Close();
}

benyaminrahimi
دوشنبه 29 تیر 1394, 17:47 عصر
یه دیتاست رو فرم بزازید و با اسم فیلد یا متد fieldbyname نام فیلد رو بدست بیارید سپس با متد savetofile در دیسک ذخیره کرده استفاده کنید یا اگرم میدونید فرمتش چیه میتونید کنترل های بانک اطلاعاتی جهت نمایش تصویر رو بهش وصل کنید بایه datasource و خصوصیت datafiled


متد 1

datasetfield.savetofile('1.jpg')


متد 2

dataset.filedbyname('filed').savetofile('c:\1.jpg' )

kont_200
دوشنبه 29 تیر 1394, 18:19 عصر
با تشکر از دوست عزیزم
ولی نشد
تصاویر توسط دستور INKCANVAS در C# نوشته شده و در بانک ذخیره می شود
https://msdn.microsoft.com/en-us/library/system.windows.controls.inkcanvas.strokes(v=vs.110 ).aspx

این لینکشه لطفا نگاه کنین ممنون می شم

kont_200
دوشنبه 29 تیر 1394, 20:42 عصر
این dll رو چطوری add کنم چون یکی از کلاس های این dll
PresentationFramework.dll

golbafan
دوشنبه 29 تیر 1394, 21:59 عصر
dll های دات نت در دلفی نمیشه استفاده کرد

kont_200
سه شنبه 30 تیر 1394, 00:17 صبح
تصاویر توسط دستور INKCANVAS در C#‎ نوشته شده و در بانک ذخیره می شود
https://msdn.microsoft.com/en-us/lib...v=vs.110).aspx

لطفا دوستان یک راهکاری برای این مورد پیشنهاد بفرمایید
byte[] signature = (byte[])Reader["paper"];
using (MemoryStream ms = new MemoryStream(signature))
{
ICanvas.Strokes = new Strokes(ms);
ms.Close();
}
این دستور برای خواندن از دیتابیس است در c#

meysam_212
جمعه 09 مرداد 1394, 09:04 صبح
اگه تصویر با فرمت عکس ذخیره شده باشه با این دستور می تونی بازیابیش کنی، البته با ADO



var
g : TMemoryStream;
begin
g := TMemoryStream.Create;
g.LoadFromStream(AAdo.CreateBlobStream(AAdo.FieldB yName('file') , bmRead));
g.SaveToFile('c:\fileName.*');
end;