ورود

View Full Version : سوال: عکس گرفتن با webcam



minaalamshahi
سه شنبه 22 شهریور 1390, 10:00 صبح
با سلام
من احتیاج دارم که از طریق webcam با استفاده از silverlight بتونم در صفحاتasp.net عکس بگیرم
ممنون میشمئ در این زمینه منو راهنمایی کنید

d_derakhshani
سه شنبه 22 شهریور 1390, 17:33 عصر
برای بدست آوردن لیست وب کم ها(سورس های تصویری) :


//// In Global Variable----------------------------------
CaptureSource captureSource;
//// On Load Page------------------------------------
_captureSource = new CaptureSource();
var camList=CaptureDeviceConfiguration.GetAvailableVid eoCaptureDevices();
captureSource = new CaptureSource();
/// On Start Recording------------------------------
if (captureSource == null) return;
_captureSource.Stop();
_captureSource.VideoCaptureDevice = camList[0] ;
var vidBrush = new VideoBrush();
vidBrush.SetSource(_captureSource);
rectangleControl.Fill = vidBrush;

if (CaptureDeviceConfiguration.AllowedDeviceAccess
|| CaptureDeviceConfiguration.RequestDeviceAccess())
{
_captureSource.Start();
}

minaalamshahi
سه شنبه 22 شهریور 1390, 20:41 عصر
آیا این silverlight هستش؟ و آیا همین چند خط کافیه؟برای کار با web cam و گرفتن عکس کاربران سایت من؟طرز استفاده؟یه sample یا سایت مناسب و بدون error و exception؟

minaalamshahi
چهارشنبه 23 شهریور 1390, 12:16 عصر
چطور حالا می تونم باهاشون کار کنم

d_derakhshani
شنبه 26 شهریور 1390, 17:36 عصر
يك sample نوشتم كه بتونيد استفاده كنيد. فقط به دليل محدوديت زماني خيلي سريع نوشتمش حتي وقت نكردم به پرو‍‍ژه اسم درستي بدم. قبلا از اجرا يك بار كل solution رو Build كنيد.
نحوه ارسال تصوير گرفته شده در silverlight به سرور(ASP.Net) با خودتون. اگه خواستيد يه پست ديگه ايجاد كنيد تا جواب بدم(اما خودتون پيدا كنيد بهتره).

minaalamshahi
سه شنبه 29 شهریور 1390, 12:29 عصر
یه سوال silverlight قسمت MainPage.xaml,.cs با namespace ,windows کار می کنه برای اینکه در web ذخیره بشه روی سرور اصلی باید چه کرد و اگر بخوام این پروژه رو add کنم داخل پروژه Web خودم همون فولدر webاین پروزه رو باید add کنم


var dlg = newSaveFileDialog();
dlg.DefaultExt = ".png";
dlg.Filter = "PNG File|*.png";
if (dlg.ShowDialog() == true)
{
using (var pngStream = GetPngStream(lastSnapshot))
using (var file = dlg.OpenFile())
{
byte[] binaryData = newByte[pngStream.Length];
long bytesRead = pngStream.Read(binaryData, 0, (int)pngStream.Length);
file.Write(binaryData, 0, (int)pngStream.Length);
file.Flush();
file.Close();

{
Stream GetPngStream(WriteableBitmap bmp)
{
// Use Joe Stegman's PNG Encoder
// http://bit.ly/77mDsv
EditableImage imageData = new EditableImage(bmp.PixelWidth, bmp.PixelHeight);
for (int y = 0; y < bmp.PixelHeight; ++y)
{
for (int x = 0; x < bmp.PixelWidth; ++x)
{
int pixel = bmp.Pixels[bmp.PixelWidth * y + x];
imageData.SetPixel(x, y,
(byte)((pixel >> 16) & 0xFF),
(byte)((pixel >> 8) & 0xFF),
(byte)(pixel & 0xFF),
(byte)((pixel >> 24) & 0xFF)
);
}
}
return imageData.GetStream();
}
{