PDA

View Full Version : تولید انیمیشن از Bitmap ؟



Neeloofar
پنج شنبه 12 بهمن 1385, 17:45 عصر
سلام

به تصاویر ذیل نگاه کنید.
رابط ویژال استدیو از این تصاویر جهت نمایش یک انیمیشن در هنگام Build یا Save و یا چاپ استفاده میکند.

من هم میخوام چنین کاری رو انجام بدم. ولی با استفاده از یک تایمر و نمایش هر قطعه تصویر با تیک تایمر یک مشکل وجود داره. مثلا هنگام ذخیره برنامه رو یک خط کمی مکث کنه اونوقت خطوط تایمر هم خوانده نمیشه!

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

Ner'zhul Arthas
پنج شنبه 12 بهمن 1385, 20:54 عصر
باید اونو توی System.Threading.Thread قرار بدید تا گیر نکنه.

Neeloofar
پنج شنبه 12 بهمن 1385, 23:00 عصر
باید اونو توی System.Threading.Thread قرار بدید تا گیر نکنه.
لطف کردید.:لبخندساده:

vahidiran
جمعه 13 بهمن 1385, 08:32 صبح
اگر یه فایل Gif بگذاری چی کار می کنه ( یعنی انیمیشنش)

hassan_kahrizy
جمعه 13 بهمن 1385, 08:54 صبح
بسمه تعالی
باسلام
می شه یک مثال بگذارید تا ببینیم چطوریه
با تشکر

Neeloofar
جمعه 13 بهمن 1385, 09:44 صبح
اگر یه فایل Gif بگذاری چی کار می کنه ( یعنی انیمیشنش)

فایل GIF هم متوقف میشه اگه روی یک خط زمان زیادی طول بکشه.
اگر کسی وقتش رو داره لطف کنه و یک مثال با Thread بزنه چون من با MSDN چیزی سر در نیاوردم!

Sub Zero
جمعه 13 بهمن 1385, 11:47 صبح
فکر کنم با هدف استفاده از Thread اشنایی دارید بنابراین فقط یه مثال می زنم .

Dim thread As New System.Threading.Thread(AddressOf Show_Gif)
thread.Start()

با این دو دستور یک Thread ایجاد میکنید و اونو Run میکنه.
در قسمت پارامترها نام رویه ای که کار مورد نظر رو انجام میده بنویسید (Show_Gif) توی رویه هم خط قرمز رو بنویسید .


Sub Show_Gif()
.
.
Threading.Thread.Sleep(500)
.
.
End Sub
اگه از حلقه های تکرار استفاده میکنید خط قرمز رو توی حلقه بزارید .
پارامتر Sleep هم برحسب میلی ثانیه است .

در ضمن اگه هنگام کار با Thread با پیغام خطا مواجه شدید کد زیر رو در رویداد لود فرم بنویسید

Control.CheckForIllegalCrossThreadCalls = False

Neeloofar
جمعه 13 بهمن 1385, 12:13 عصر
آقای رضایی خیلی ممنون.
اگه قرار باشه کدها در روال تیک یک تایمر باشه چطوری هست. (و با قفل شده برنامه روی یک خط، کدهای روال تایمر خوانده بشه)
این کدی که گفتید فکر کنم برای یک دستور که با تمام شده روال پایان میگیره. ولی تایمر روال رو خودکار از سر شروع میکنه.

نمیدونم منظورم رو درست گفتم یا نه!:متفکر: :لبخند:

حامد مصافی
جمعه 13 بهمن 1385, 12:25 عصر
سلام
نیازی به انجام این همه کار نیست!
یک تصویر متحرک رو در هر کجا (حتی آیتم های منو) قرار دهید. وی»وال استودیو کارشو بلده!
مگر اینکه واقعاً اصرار داشته باشید خودتون این کار (فریم بندی و پخش) رو انجام بدید. که در اینصورت روال کار فرق می کنه.



فایل GIF هم متوقف میشه اگه روی یک خط زمان زیادی طول بکشه.

منظورتون اینه که فایل تصویری متحرک gif درست نشون داده نمی شه؟؟؟ من به کررات این کار رو کردم!

Ner'zhul Arthas
سه شنبه 01 اسفند 1385, 05:13 صبح
آقای رضایی خیلی ممنون.
اگه قرار باشه کدها در روال تیک یک تایمر باشه چطوری هست. (و با قفل شده برنامه روی یک خط، کدهای روال تایمر خوانده بشه)
این کدی که گفتید فکر کنم برای یک دستور که با تمام شده روال پایان میگیره. ولی تایمر روال رو خودکار از سر شروع میکنه.

نمیدونم منظورم رو درست گفتم یا نه!:متفکر: :لبخند:

بذاریدش تو:



do


loop


اگر درست فهمیده باشم منظورتونو. :لبخند: