قسمت دوم "ساخت تصاویر پین اسکرین با
MaxScript"
تابع
کد:
[/FONT][B][FONT=Courier New][COLOR=red]getPixels[/COLOR][/B][/FONT][FONT=Courier New] [COLOR=blue]<bitmap> <coord_point2> <num_pixels>[/COLOR] [/FONT][FONT=Times New Roman]
این یکی از مهمترین توابع در این آموزش است که با سرعت بالایی
pixelهای یک تصویر رو برای ما می خونه
.
زمانی که این تابع یک
pixelرو میخونه در جوا ب رنگ او
pixelرو به ما میده
.
رنگ پیکس به عنوان یک رنگ
RGB خواهد بود
red ,blue ,green که بالاترین عدد برای هر کدام
255 است که رنگ سفید خالص به این صورت است
و رنگ سیاه خالص هم
اگر مقدار بیشتر از 255 برای هر رنگ وارد کنید به مقادیر اولیه خود بر میگردد مثلااگر 256 وارد کنید اونو به منزله صفر خواهد گرفت و بر عکس
<<<<<<>>>>>>
برای تغییر رنگ یک موضوع یا اطلاع از مقادیر رنگ ما از این
properties استفاده میکنیم
که در قسمت
OBJ موضوع خود وارد میکنیم ,که میتوان هر موضوعی باشد که خاصیت رنگ پذیری داشته باشه
مثال
:
کد:
$box01 . wirecolor = (color 255 255 255)
[/FONT][FONT=Times New Roman][COLOR=#0000ff](color 255 255 255)
[/COLOR][/FONT][FONT=Times New Roman]
مثال
:
کد:
$sphere01 . wirecolor
[/FONT][FONT=Times New Roman][COLOR=#0000ff](color 255 102 10)
[/COLOR][/FONT][FONT=Times New Roman]
<<<<<<>>>>>>
برگردیم به تابع
GetPixels و توضیح هر قسمت آن
دارای سه قسمت تنظیمی است
>
bitmap : در اینجا تصویر خود را وارد میکنیم که با تابع openbitmap قبلا باز کردیم به قسمت اول آموزش مراجعه کنید
coord_point2: این یک مختصات دو بعدی است که به صورت زیر به نمایش در خواهد آمد,منظور ما پهنا و ارتفاع است
x همون پهنا و Y همون ارتفاع
از این مختصات برای تعیین محدوده خواندن پیکسل ها استفاده میکنیم
نکات خیلی مهم:
پیکسلها به صورت افقی یعنی در راستای x یا پهنا خوانده میشود.
هر pixel با یک عدد شماره گذاری شده , پس اولین pixel با صفر شماره گذاری شده.
پس اگر بخواهیم 100 پیکسل داشته باشیم باید از صفر تا 99 شماره گذاری کنیم چون خود صفر هم شماره اولین pixel است
(برای توضیحات کاملتر پیوست را مطاله فرمایید)
فرض کنید یک تصویر 100*100 داریم که جمعا 10000 پیکسل دارد میخواهیم آ خرین پیکسل در ارتفاع صفر تصویر را بخوانیم پس به این صورت مختصات را تنضیم میکنیم
num_pixels: [FONT=Courier New (Arabic)]این قسمت از تابع به طور کامل وابسته است به مختصات دو بعدی که قبلا توضیح دادم[/FONT]
.
[FONT=Courier New (Arabic)]در این قسمت تعداد پیکسلهایی که قرار است خوانده شوند تعیین میکنیم ,که وابسته به مختصات داده شده ماست[/FONT]
.
[FONT=Courier New (Arabic)]اگر تعداد پیکسلها با مختصات همخوانی نداشته باشد جواب ما یک[/FONT]
Array
[FONT=Courier New (Arabic)]خالی خواهد بود
[/FONT]
([FONT=Courier New (Arabic)]برای جزئیات پیوست را مطاله فرمایید[/FONT]
)
............
[FONT=Courier New (Arabic)]مثال1[/FONT]
::
[FONT=Courier New (Arabic)]فرض کنید تصویری با کیفیت 5*5 داریم میخواهیم ببینیم در مختصات[/FONT]
پنج پیکسل وجود دارد یا نه
کد:
[/FONT]
[FONT=Times New Roman][/FONT]
[FONT=Times New Roman]myimage = openbitmap "d:\five_five.bmp"[/FONT]
[FONT=Times New Roman][COLOR=#0000ff]BitMap:D:\five_five.bmp
[/COLOR][/FONT][FONT=Times New Roman]myhei = myimage.height
5
mywid = myimage.width
5
my_pixels = GetPixels myimage [0,3] 5
[/FONT][FONT=Times New Roman][COLOR=#0000ff]#((color 255 128 64), (color 255 128 64), (color 255 128 64), (color 128 0 0), (color 128 0 0))
[/COLOR][/FONT][FONT=Times New Roman]
میبینیم که در مختصات فوق, ما 5 پیسل داریم که رنگ آنها را در یک
Array مرتب کرده
.............................
مثال2
::
[FONT=Courier New (Arabic)]میخواهیم ببینیم در مختصات[/FONT]
پنج پیکسل وجود دارد یا نه
کد:
[/FONT]
[FONT=Times New Roman][/FONT]
[FONT=Times New Roman]myimage = openbitmap "d:\five_five.bmp"[/FONT]
[FONT=Times New Roman][COLOR=#0000ff]BitMap:D:\five_five.bmp
[/COLOR][/FONT][FONT=Times New Roman]myhei = myimage.height
5
mywid = myimage.width
5
my_pixels = GetPixels myimage [4,3] 5
[/FONT][FONT=Times New Roman][COLOR=#0000ff]#()
[/COLOR][/FONT][FONT=Times New Roman]
میبینیم که در مختصات دوم, 5 پیکسل وجود ندارد و در پاسخ یک
array خالی به ما میدهد
....................................
مثال3
::
[FONT=Courier New (Arabic)]میخواهیم ببینیم در همین مختصات که در بالا تکرار کردیم
[/FONT]
یک پیکسل وجود دارد یا نه
کد:
[/FONT]
[FONT=Times New Roman][/FONT]
[FONT=Times New Roman]myimage = openbitmap "d:\five_five.bmp"[/FONT]
[FONT=Times New Roman][COLOR=#0000ff]BitMap:D:\five_five.bmp
[/COLOR][/FONT][FONT=Times New Roman]myhei = myimage.height
5
mywid = myimage.width
5
my_pixels = GetPixels myimage [4,3] 1
[/FONT][FONT=Times New Roman][COLOR=#0000ff]#((color 128 0 0))
[/COLOR][/FONT][FONT=Times New Roman]
پس در مختصات مورد نظر 5 پیکسل وجود ندارد , اما یک پیکسل وجود دارد
(برای توضیحات کاملتر پیوست را مطاله فرمایید)
............................
نکته قابل توجه :ما در این آموزش فرض کردیم که شما با
Array ها آشنا هستید و لذ از توضیح اونها صرف نضر میکنیم به هر حال اگر مشکلی با
array ها داشتید میتوانید پست بزنید
[FONT=Arial (Arabic)]
[/FONT]