تور لحظه آخری
امروز : چهارشنبه ، 28 شهریور 1403    احادیث و روایات:  امام علی (ع):حکمت را هر کجا که یافتی فراگیر، زیرا حکمت گمشده هر مومن است.
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

تبلیغات متنی

تریدینگ ویو

کاشت ابرو

لمینت دندان

لیست قیمت گوشی شیائومی

صرافی ارکی چنج

صرافی rkchange

دزدگیر منزل

تشریفات روناک

اجاره سند در شیراز

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

طراحی کاتالوگ فوری

Future Innovate Tech

پی جو مشاغل برتر شیراز

لوله بازکنی تهران

آراد برندینگ

وکیل کرج

خرید تیشرت مردانه

وام لوازم خانگی

نتایج انتخابات ریاست جمهوری

خرید ابزار دقیق

خرید ریبون

موسسه خیریه

خرید سی پی کالاف

واردات از چین

دستگاه تصفیه آب صنعتی

حمية السكري النوع الثاني

ناب مووی

دانلود فیلم

بانک کتاب

دریافت دیه موتورسیکلت از بیمه

خرید نهال سیب سبز

قیمت پنجره دوجداره

بازسازی ساختمان

طراحی سایت تهران سایت

دیوار سبز

irspeedy

درج اگهی ویژه

ماشین سازان

تعمیرات مک بوک

دانلود فیلم هندی

قیمت فرش

درب فریم لس

شات آف ولو

تله بخار

شیر برقی گاز

شیر برقی گاز

خرید کتاب رمان انگلیسی

زانوبند زاپیامکس

بهترین کف کاذب چوبی

پاد یکبار مصرف

روغن بهران بردبار ۳۲۰

قیمت سرور اچ پی

بلیط هواپیما

 






آمار وبسایت

 تعداد کل بازدیدها : 1816429243




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

الگوريتم lzw -


واضح آرشیو وب فارسی:سایت ریسک: الگوريتم lzw afsharan 06 مرداد 1388, 10:32سلام من ميخوام يم فايل gif از طريق ويژوال بيسيك بازكنم از طريق كد نويسي من اطلاعات داخل اين فايل رو خوندم جاي كه اطلاعات پيكسلها ذخيره شده از الگوريتم lzw استفاده كرده كسي درباره اين الگوريتم اطلاعاتي داره؟ the_king 06 مرداد 1388, 13:46سلام من ميخوام يم فايل gif از طريق ويژوال بيسيك بازكنم از طريق كد نويسي من اطلاعات داخل اين فايل رو خوندم جاي كه اطلاعات پيكسلها ذخيره شده از الگوريتم lzw استفاده كرده كسي درباره اين الگوريتم اطلاعاتي داره؟ الگوریتم مشهوریه و در عین حال از نظر پیاده سازی ساده است : Save StdPictures (BMPs) in .GIF Format with Optional Transparency () Lempel–Ziv–Welch (LZW) - Wikipedia (–Ziv–Welch) البته با توجه به اینکه +GDI در تمامی ویندوز های XP به بعد وجود داره، نیازی به کد نویسی خاصی برای خواندن یا نوشتن اطلاعات تصاویر GIF ندارید و می توانید از کتابخانه +GDI استفاده کنید. در کد برنامه مرور گر تصویر من یک ماژول GDIPlus.bas وجود دارد که خواندن و نوشتن تصاویر JPEG و GIF و PNG و TIFF و ... را با +GDI انجام می دهد، می توانید از آن ماژول استفاده کنید : یک مرورگر تصویر به زبان ویژوال بیسیک () afsharan 07 مرداد 1388, 10:32سلام من رشتم الكترونيك و كمي هم ويژوال بيسيك ياد دارم من ميخوام يك فايل gif رو به كد تبديل كنم و در تابلوهاي led اين فايل رو نمايش دهم چه كار بايد بكنم كه فايل gif رو ديكد بكنم afsharan 07 مرداد 1388, 10:46سلام اگه ميشه برنامه اي كه گذاشتين رو يك توضيح بدين با تشكر the_king 07 مرداد 1388, 12:36سلام من رشتم الكترونيك و كمي هم ويژوال بيسيك ياد دارم من ميخوام يك فايل gif رو به كد تبديل كنم و در تابلوهاي led اين فايل رو نمايش دهم چه كار بايد بكنم كه فايل gif رو ديكد بكنم حتما می دونید که تصاویر GIF حداکثر 256 رنگه هستند، یعنی یک جدول رنگ (Palette) دارند که رنگ های بکار رفته در تصویر را از داخل آن انتخاب می کنند. حالا بسته به اینکه تابلو های LED شما تکرنگ باشند یا چند رنگی، خودتان بایستی رنگ ها را معادلسازی کنید، مگر اینکه تصویر GIF ای که بکار می برید از همان ابتدا همان چند رنگ محدود که تابلو دارد بکار برده باشند. به هر حال اگر قصد تان صرفا خواندن فایلهای GIF باشد، اصلا نیازی به کد های اضافی ندارید، حتی به آن ماژولی که من نوشته بودم هم نیازی نیست، چون خود ویژوال بیسیک توانایی خواندن و نمایش تصاویر GIF را دارد، فقط نمی تواند آنها را ایجاد کند و بنویسد. کد زیر یک تصویر C:Image1.gif را خوانده و آنرا به یک آرایه دو بعدی Bitmap تبدیل می کند، هر خانه از این Bitmap مقدار 1 دارد به شرطی که رنگ آن نقطه در تصویر gif سفید باشد، وگرنه 0 است. پس در حقیقت تصویر را به یک آرایه دو بعدی 0 و 1 تبدیل می کند : Private Sub Form_Load() Dim Pic1 As PictureBox Dim Bitmap() As Byte Dim X As Long, Y As Long Set Pic1 = Me.Controls.Add("VB.PictureBox", "Pic1") With Pic1 .BorderStyle = vbBSNone .AutoSize = True .AutoRedraw = True .ScaleMode = vbPixels Set .Picture = LoadPicture("C:Image1.gif") ReDim Bitmap(0 To .ScaleWidth - 1, 0 To .ScaleHeight - 1) For Y = 0 To .ScaleHeight - 1 For X = 0 To .ScaleWidth - 1 If .Point(X, Y) = vbWhite Then Bitmap(X, Y) = 1 Else Bitmap(X, Y) = 0 End If Next Next End With End Sub afsharan 08 مرداد 1388, 09:03سلام ميشه اين خط رو توضيح بدين redim bitmap(0 to .scalewidth - 1, 0 to .scaleheight - 1) the_king 08 مرداد 1388, 12:58سلام ميشه اين خط رو توضيح بدين ReDim Bitmap(0 To .ScaleWidth - 1, 0 To .ScaleHeight - 1) Bitmap نام آرایه است که در ابتدای کد تعریف شده، اما چون برای آن ابعادی مشخص نکرده بودیم، بایستی بصورت دینامیک ابعادش را بر اساس ابعاد تصویر GIF تنظیم کنیم. ScaleWidth طول تصویر GIF است (بر حسب پیکسل) که چون ما اندیس ها را از 0 شروع می کنیم، برای آخرین اندیس ScaleWidth - 1 را تعیین می کنیم. به همان ترتیب ScaleHeight عرض تصویر GIF است و برای آخرین اندیس اش ScaleHeight - 1 را بکار می بریم. مثلا اگر ابعاد تصویر GIF برابر 10 در 20 پیکسل باشد، آنگاه Bitmap به این شکل ایجاد می گردد : ReDim Bitmap(0 To 9, 0 To 19) afsharan 10 مرداد 1388, 11:15سلام منون از همكاري شما ببخشيد سواد برنامه نويسيvb من پاينه اين خط رو هم توضيح بدين Set Pic1 = Me.Controls.Add("VB.PictureBox", "Pic1") the_king 10 مرداد 1388, 20:26سلام منون از همكاري شما ببخشيد سواد برنامه نويسيvb من پاينه اين خط رو هم توضيح بدين Set Pic1 = Me.Controls.Add("VB.PictureBox", "Pic1") در زمان اجرای کد (Runtime)، یک کنترل PictureBox با نام Pic1 را روی فرم قرار می دهد، البته Visible آن کنترل False خواهد بود و دیده نمی شود. afsharan 11 مرداد 1388, 05:36سلام برنامه اي كه شما نوشتين خيلي برام مفيد بود با اين برنامه من يك عكس رو ميتونم بخونم حالا اگه يك فايل متحرك gif (انيميشن) باشه چه كار بايد كرد the_king 12 مرداد 1388, 02:13سلام برنامه اي كه شما نوشتين خيلي برام مفيد بود با اين برنامه من يك عكس رو ميتونم بخونم حالا اگه يك فايل متحرك gif (انيميشن) باشه چه كار بايد كرد کنترل های استاندارد تصویری فقط اولین فریم GIF های متحرک را نمایش می دهند، به همین جهت برای دریافت اطلاعات بقیه فریم ها قابل استفاده نیستند. برای اینکه سایر فریم ها را نمایش دهیم، از یک کنترل WebBrowser که حقیقتا یک پنجره Internet Explorer است، استفاده خواهیم کرد. WebBrowser می تواند یک تصویر GIF متحرک را نمایش دهد. زمانی که تصویر نمایش پیدا کرد، می توانیم هر لحظه از تصویر آن عکس گرفته و به داخل یک PictureBox منتقل کنیم. بقیه مراحل مشابه همان حالتی خواهد بود که یک تصویر عادی درون PictureBox قرار گیرد. کد برنامه پیوستی یک تصویر GIF متحرک را در داخل یک کنترل WebBrowser نمایش می دهد. هر زمانی که دکمه Get Frame را فشار دهید، از تصویر متحرک عکس گرفته می شود و در حافظه آرایه Bitmap قرار می گیرد. برای آنکه صحت عملکرد روتین مشخص شود، یک روتین دیگر به نام ShowFrame ایجاد کردم تا آرایه Bitmap را روی فرم نشان دهد. کد کامل برنامه به همراه فایل اجرایی exe ضمیمه این پست می باشد. afsharan 12 مرداد 1388, 09:54سلام در اين WebBrowser ميشه هر فريم رو تشخيص داد كه خودكار از آن عكس بگير و كدها رو استخراج كنه the_king 12 مرداد 1388, 19:43سلام در اين WebBrowser ميشه هر فريم رو تشخيص داد كه خودكار از آن عكس بگير و كدها رو استخراج كنه نه به اون شکل، ما از بیرون از کنترل WebBrowser به مشخصات و موقعیت و تعداد فریم ها دسترسی ای نداریم و طبیعتا نمایش یک فریم جدید هم به برنامه اعلام نخواهد شد. برای تشخیص خودکار یک فریم جدید، یک راهی به ذهنم می رسه که قطعا عملی است، اما راه حل چندان مناسبی نیست : فرض کنید که در ابتدا یک نمونه از تصویر متحرک خوانده شود. سپس با یک نرخ تکرار بالا و فواصل زمانی کوتاه، مجددا یک نمونه دیگر خوانده شود. اگر محتویات دو نمونه با هم متفاوت بود، فریم جدیدی نمایش داده شده است.




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 1988]

bt

اضافه شدن مطلب/حذف مطلب







-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن