ورود

View Full Version : سوال: مشکل در ساخت برنامه ی webcam



sajioo
جمعه 06 اسفند 1389, 12:03 عصر
سلام دوستان
راستش چند وقته که دارم روی یک برنامه کار می کنم که با وب کم تحت شبکه طرف دیگر بتونه تصویر دیگری رو ببینه . درست مثل وبکم یاهو.

ایده ی من این بود که هر وقت تصویر وب کم تغییر کرد از اون تصویر جدید عکس بگیرم و بفرستم به client
این کار انجام می شه دوستان اما وقتی حرکات زیاد می شه و تعداد عکس های که باید ارسال بشه زیاد می شه برنامه خطای زیر رو میده.
66800

کدی هم که برای ارسال عکس نوشتم اینه . البته این کد رو از برنامه ی یکی از دوستان کمک گرفتم.




var
c : TCanvas;
b : TBitmap;
j : TJPEGImage;
s ,s1 : TStream;

//__________________________________________________ _________

function CompressStream (Source, FStream: TStream): Single;
var
comprStream: TCompressionStream;
begin
comprStream := TCompressionStream.Create(clFastest, FStream);
try
comprStream.CopyFrom(Source, Source.Size);
finally
comprStream.Free;
end;
end;

procedure TForm1.IdTCPServer1TIdCommandHandler0Command(ASend er: TIdCommand);
begin
try
s:=TMemoryStream.Create;
s1:=TMemoryStream.Create;
c.Handle:=GetDC(GetDesktopWindow);
b.Canvas.CopyRect(Rect(0,0,b.Width,b.Height),c,Rec t(0,0,Screen.Width,Screen.Height));
//j.Assign(Image11.Picture);
j.CompressionQuality:=50;
j.Compress;
j.SaveToStream(s);
s.Position:=0;
CompressStream(s,s1);
ASender.Thread.Connection.WriteStream(s1,true,true );
finally
s.Free ;
s1.Free;
end;
end;

BORHAN TEC
جمعه 06 اسفند 1389, 12:23 عصر
پیشنهاد می کنم که همه عکس ها را ارسال نکنید بلکه اگر شرایط به طوری بود که تغییراتی در عکس به وجود آمد سپس شروع به ارسال عکسها در بازه های زمانی مشخص کنید. (مثلاً هر دو ثانیه)
راستی یک سوال دیگه: آیا برای انجام این کار از فیلم آموزشی آقای Bob Swart که در CodeRage 2 مطرح شد استفاده کرده اید؟؟؟ :متفکر:

sajioo
جمعه 06 اسفند 1389, 19:34 عصر
راستش نه! چی هست؟میشه بیشتر توضیح بدین؟
در ضمن هر وقت عکس تغییر می کنه شروع به ارسال می کنه اما وقتی مثلا یک نفر بمدت چند ثانیه مثلا سرش رو تکون میده اون موقع این اتفاق رخ میده.

BORHAN TEC
شنبه 07 اسفند 1389, 18:51 عصر
راستش نه! چی هست؟میشه بیشتر توضیح بدین؟

CodeRage که نام نشستهای دلفی است. در یکی از فیلم آقای Bob Swart تشخیص حرکت توضیح داده شده که میتونید آنرا از آدرس زیر تحت نام Webcam Fun for Delphi Developers دانلود کنید:
http://drbob42.com/video/index.htm

حجم فایل : 594 مگابایت
مدت فیلم: 1 ساعت و 2 دقیقه

Delphi_Developer
سه شنبه 10 اسفند 1389, 23:57 عصر
این کار زیاد عاقلانه نیست که عکس capture کنی و بفرستی - با کامپوننت Video Grabber این کار رو راحت میتونی انجام بدی - ویدیو رو از وبکم میتونی به صورت stream بفرستی و بسته به سرعت شبکت راحت بدون تاخیر میتونی تصویر رو دریافت کنی