سلام دوستان امروز کلاسی با سی شارپ می نویسیم که مسیر فایل یا فایل به صورت بیت مپ را دریافت می کند.
ابتدا از وجود این کتابخانه ها اطمینان حاصل کنید.
1 2 | using System; using System.Drawing; |
کلاس زیر می تواند کار هایمان را انجام دهد(در پست های بعد به آن قابلیت های بیشتری اضافه می کنیم.).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | class Photo { public Bitmap negative(Bitmap photo) { Color pxcolor; for (int i = 0; i < photo.Width; i++) { for (int j = 0; j < photo.Height; j++) { pxcolor = photo.GetPixel(i, j); photo.SetPixel(i, j, Color.FromArgb(255 - pxcolor.R, 255 - pxcolor.G, 255 - pxcolor.B)); } } return photo; } public Bitmap negative(string path) { Bitmap photo = new Bitmap(path); Color pxcolor; for (int i = 0; i < photo.Width; i++) { for (int j = 0; j < photo.Height; j++) { pxcolor = photo.GetPixel(i, j); photo.SetPixel(i, j, Color.FromArgb(255 - pxcolor.R, 255 - pxcolor.G, 255 - pxcolor.B)); } } return photo; } } |
کلاس بالا دارای 2 تابع با نام negative از نوع Bitmap است که هر دو کار نگاتیو کردن را انجام می دهند ولی ورودی های متفاوت دارند تابع اول عکسی از نوع Bitmap دریافت می کند و تابع دوم مسیر عکس را می گیرد.
نکته: تابع دوّم خودش مسیر را به Bitmap تبدیل می کند ولی تابع اول Bitmap را به صورت آماده می گیرد.
خط 5 متغیری از نوع Color به نام pxcolor تعریف می کند. خط 6 یک حلقه for تعریف می کند. خط 8 هم حلقه for دیگری ایجاد می کند.
خط 10 رنگ پیکسلی در مختصات i,j را در pxcolor می ریزد. خط 11 رنگ پیکسلی در مختصات i,j را برعکس می کند. حداکثر مقدار یک رنگ 255 می باشد و اگر به کد خط 11 دقّت کنید خواهید فهمید که مقدار هر رنگ از 255 کم شده مانند:
255-120=135
255-255=0
255-0=255
همانطور که مشاهده می کنید مقدار اگر زیاد باشد کم و اگر کم باشد زیاد می شود. 127 و 128 نقاط میانی هستند.
255-127=128
255-128=127
در نهایت رنگ تمامی خانه های عکس برعکس شده و یا به اصطلاح عکس نگاتیو می شود و از طریق کد return در خط 14 عکس باز گردانده می شود.
تابع دوم هم همین کار را می کند ولی ابتدا از طریق کد خط 18 عکس مسیر وارد شده در path را به صورت بیت مپی با نام photo ذخیره می کند و عملیات را روی آن اجرا می کند.
امیدوارم خوشتان آمده باشد با نظراتتان ما را حمایت کنید.
تا کد های دیگر عکساتون زیبا