PDA

View Full Version : مبتدی: فیلم برداری از صفحه نمایش



behradravanbod
چهارشنبه 19 آذر 1393, 23:41 عصر
سلام
میخواستم از دوستانی که در این زمینه استاد اند،سوالی بپرسم؟؟
با چه دستور یا هر چیز دیگری میتوان از صفحه نمایش فیلم برداری کرد و آن را ذخیره کرد؟؟؟

soheyl_f
پنج شنبه 20 آذر 1393, 16:36 عصر
سلام...اگه منظورت با چه نرم افزاري ميشه از صفحه فيلم گرفت،من Camtasia Studio رو پيشنهاد ميكنم.

Mr.Csharp
پنج شنبه 20 آذر 1393, 16:58 عصر
سلام...اگه منظورت با چه نرم افزاري ميشه از صفحه فيلم گرفت،من Camtasia Studio رو پيشنهاد ميكنم.
خیر منظورشون ساخت برنامه ای شبیه به این نرم افزاریه که شما می فرماید

behradravanbod
پنج شنبه 20 آذر 1393, 19:10 عصر
منظور من ساخت همچین نرم افزاری است
لطفا راهنمایی کنید که اگه بکنید من بسیار خوشحال و دعا گوتون میشم

plus
پنج شنبه 20 آذر 1393, 19:42 عصر
احتمالا شما باید از Library های آماده ای که برای این کار موجود هست استفاده کنید وگرنه کاری که میخواین بکنین در دسته "مبتدی" (عنوان تاپیک) نیست.
برای Library های آماده میتونید جستجو کنید یا https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0CCcQFjAA&url=http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fwindows%2Fapps%2Fxaml%2Fdn642093.as px&ei=OsaJVJ_hB4mw7Abr1IHoCQ&usg=AFQjCNEAuiHbWuEFBC1Li4JA7ncM058B6g&sig2=9fIhngLboqC6unT690Nduw، http://www.findbestopensource.com/product/scaplib رو بررسی کنید.
ولی در صورتی که بخواین خودتون یک چنین سیستمی طراحی کنید:
برای فیلم برداری از صفحه نمایش شما نیاز به چند کار دارین که باید به صورت همزمان مدیریت بشن.
1) عکس برداری از صفحه نمایش
2) تبدیل عکس ها به یک فرمت فیلم بردای
3) مدیریت حافظه و ذخیره نتیجه روی دیسک
و توجه کنید که با توجه به محدود بودن RAM، این مراحل باید همه در با هم دیگه حین فیلم برداری انجام بشه و نمیتونه مرحله مرحله و به صورت جدا انجام بشه بنابراین شما باید با مسائل همزمانی آشنا باشید.
عکس برداری
برای عکس برداری، گزینه معمول Windows GDI هست که توی همین فروم جستجو کنید نمونه هایی پیدا میشه، ولی برای سرعت بیشتر گزینه بهتر، استفاده از DirectX و کپی برداری داده ها به صورت مستقیم از کارت گرافیک هست.
میتونید برای این کار این لینک رو بررسی کنید: http://www.codeproject.com/Articles/274461/Very-fast-screen-capture-using-DirectX-in-Csharp
تبدیل تصاویر به فیلم
من زیاد با فرمت های ویدنویی آشنایی ندارم ولی برای پروژه مشابه از AVI استفاده کردم.برای تهیه فایلی با این فرمت میتونید از Windows API یا Library های Wrapper استفاده کنید و تصاویری که در مرحله قبل گرفتین رو به ویدئو تبدیل کنید.برای نمونه اینجا http://www.codeproject.com/Articles/7388/A-Simple-C-Wrapper-for-the-AviFile-Library رو بررسی کنید.البته شما ممکنه با چالش هایی مثل تبدیل فرمت تصاویر و انتخاب Codec مناسب هم روبرو باشید.
مدیریت حافظه و ذخیره روی دیسک
در صورتی که از AVI استفاده کنید تا اونجا که یادم میاد موارد ذخیره روی دیسک رو براتون انجام میده ولی در هر صورت اگه بخواین ویدئویی با سرعت واقعی داشته باشید درگیر ذخیره کردن تصاویر در حافظه و تنظیم زمان میشین (تصاویر دقیقا در لحظه ای که شما میخواین گرفته نمیشن.) بنابراین آشنایی با مسائل مربوط به همزمانی، Multithreading، Semaphore و غیره هم لازمه کار میشه.

اگه اقدام به ساخت کردین و به مشکل خوردین اینجا مطرح کنید اگه بتونم جواب میدم.