سلام
من رشتم الكترونيك و كمي هم ويژوال بيسيك ياد دارم من ميخوام يك فايل 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("[B]C:\Image1.gif[/B]")
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