PDA

View Full Version : سوال: نحوه پرینت گرفتن از تصویر ذخیره شده در دیتابیس sql در محیط wpf



mhshojaee
سه شنبه 24 مرداد 1391, 22:56 عصر
سلام.
چطور می تونم عکسی که توی دیتابیس ذخیره شده را پرینت بگیرم به نحوی که با مختصات بتونم عکس رو هر جایی از صفحه خروجی که نیاز دارم قرار بدم.

<Image VerticalAlignment="Center" HorizontalAlignment="Center" Stretch="Fill" Name="PictureBox" Source="{Binding Picture}" DataContext="{Binding Path=SelectedItem, ElementName=grdPersonnel1}" Opacity="2"> </Image>

آیا می توان از DrawImage استفاده کرد؟

Amir Oveisi
چهارشنبه 25 مرداد 1391, 11:01 صبح
عکس رو به چه شکلی تو دیتابیس ذخیره کردید؟
آدرس عکس؟
باینری؟

mhshojaee
چهارشنبه 25 مرداد 1391, 19:10 عصر
سلام عکس رو به صورت varbinary در بانک ذخیره کردم.

Amir Oveisi
چهارشنبه 01 شهریور 1391, 16:18 عصر
برای این کار کافیه محتوای عکس رو از دیتابیس بخونید و در یک []byte قرار بدید و اون []byte رو تبدیل کنید به BitmapImage و به عنوان source اون Image ای که میخواید set کنید.
برای تبدیل عکس باینری به BitmapImage میتونید از روش زیر استفاده کنید:

BitmapImage image = null;
MemoryStream stream = null;
byte[] bytes = ... //عکس تر داخل دیتابیس در این آرایه لود شده است
stream = new MemoryStream(bytes);
stream.Seek(0, SeekOrigin.Begin);
System.Drawing.Image img = System.Drawing.Image.FromStream(stream);
image = new BitmapImage();
image.BeginInit();
MemoryStream ms = new MemoryStream();
img.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
ms.Seek(0, SeekOrigin.Begin);
image.StreamSource = ms;
image.StreamSource.Seek(0, SeekOrigin.Begin);
image.EndInit();