PDA

View Full Version : سوال: خروجی پیکسل های عکس



roo.row
سه شنبه 21 اردیبهشت 1395, 22:09 عصر
با سلام

من در حال نوشتن یه برنامه هستم که داخلش برنامه تبدیل اطلاعات متنی رو به صورت عکس ذخیره میکنه و سه تا سوال دارم

1-اولین مشکل بخش باز کردن برنامه هست که داخلش برنامه باید دونه دونه پیکسل هارو بخونه و در یه تکس ذخیره کنه مثلا اگر

0,0 = white
0,1 = black

بود یعنی عکس 2 پیکسل داشت کنار برنامه یه نوت پد باز کنه و کد اونها رو ذخیره کنه مثلا :

0,0 = کد سفید
0,1 = کد سیاه

2-دومین مشکل نوشتن برنامه هست که چجوری عکس رو ایجاد کنم ؟ و دونه دونه پیکسل هاش رو بهش معرفی کنم

3-و آخرین مشکل هم این هست که سایز عکس رو چطور بدست بیارم تا تو حلقه های مرحله اول دچار مشکل نشم.

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

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

meys34
چهارشنبه 22 اردیبهشت 1395, 15:10 عصر
سلام

خود وی بی توابعی برای این کار داره..

شما با همینا کار کنید بعدا اگر احساس کردید سرعتش کمه توابع API هم هستند که یکم بهتر هستند


1-
Picture1.ScaleMode = vbPixels
Print Hex(Picture1.Point(10, 5))



2-
Picture1.AutoRedraw = True
Picture1.ScaleMode = vbPixels
Picture1.PSet (50, 30), RGB(200, 200, 200)


3-
Picture1.Picture = LoadPicture("D:\hamster.jpg")
Picture1.AutoSize = True
Picture1.BorderStyle = 0

Print Picture1.Width / Screen.TwipsPerPixelX
Print Picture1.Height / Screen.TwipsPerPixelY

roo.row
چهارشنبه 22 اردیبهشت 1395, 20:45 عصر
با سلام

وقتی توی حلقه قرار دادم سرعت کلیش یکم کم بود ممکنه توابعش رو هم معرفی کنید

با تشکر

meys34
چهارشنبه 22 اردیبهشت 1395, 21:21 عصر
نمیدونم از اینا بهتر هم هست یا نه ولی:

Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long
Private Declare Function SetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal crColor As Long) As Long
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long

Private Sub Command1_Click()
SetPixel GetDC(Picture1.hwnd), 10, 10, vbRed
Print Hex(GetPixel(Picture1.hdc, 5, 5))
End Sub