سلا مدوستان عزیز! امروز در ادامه این پست و این پست می خواهیم کد سیاه و سفید کردن عکس را برایتان بگذاریم. توجه کنید که این نوع سیاه و سفید کردن با چیزی که همه ما از سیاه کردن می شناسیم که در واقع ترکیبی از خاکستری های گوناگون است متفاوت است. در این آموزش پیکسل های عکس هر کدام یا کاملاً سفید و یا کاملاً سیاه می شوند.
توابع زیر کار های ما را انجام می دهند.
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 | public Bitmap BlackWhite(Bitmap photo, int Mode = 1/*Mode 1=Red, 2=Green, 3=>blue*/) { Color color; byte col; for (int i = 0; i < photo.Width; i++) { for (int j = 0; j < photo.Height; j++) { color = photo.GetPixel(i, j); if (Mode == 1) col = color.R; else if (Mode == 2) col = color.G; else col = color.B; if(col<128) photo.SetPixel(i, j, Color.FromArgb(0, 0, 0)); else photo.SetPixel(i, j, Color.FromArgb(255, 255, 255)); } } return photo; } public Bitmap BlackWhite(string path, int Mode = 1/*Mode 1=Red, 2=Green, 3=>blue*/) { Bitmap photo = new Bitmap(path); Color color; byte col; for (int i = 0; i < photo.Width; i++) { for (int j = 0; j < photo.Height; j++) { color = photo.GetPixel(i, j); if (Mode == 1) col = color.R; else if (Mode == 2) col = color.G; else col = color.B; if (col < 128) photo.SetPixel(i, j, Color.FromArgb(0, 0, 0)); else photo.SetPixel(i, j, Color.FromArgb(255, 255, 255)); } } return photo; } public Bitmap BlackWhite(Bitmap photo, decimal Mode = 1/*Mode 1=Red, 2=Green, 3=>blue*/) { Color color; byte col; for (int i = 0; i < photo.Width; i++) { for (int j = 0; j < photo.Height; j++) { color = photo.GetPixel(i, j); if (Mode == 1) col = color.R; else if (Mode == 2) col = color.G; else col = color.B; if (col < 128) photo.SetPixel(i, j, Color.FromArgb(0, 0, 0)); else photo.SetPixel(i, j, Color.FromArgb(255, 255, 255)); } } return photo; } public Bitmap BlackWhite(string path, decimal Mode = 1/*Mode 1=Red, 2=Green, 3=>blue*/) { Bitmap photo = new Bitmap(path); Color color; byte col; for (int i = 0; i < photo.Width; i++) { for (int j = 0; j < photo.Height; j++) { color = photo.GetPixel(i, j); if (Mode == 1) col = color.R; else if (Mode == 2) col = color.G; else col = color.B; if (col < 128) photo.SetPixel(i, j, Color.FromArgb(0, 0, 0)); else photo.SetPixel(i, j, Color.FromArgb(255, 255, 255)); } } return photo; } public Bitmap BlackWhite(Bitmap photo, double Mode = 1/*Mode 1=Red, 2=Green, 3=>blue*/) { Color color; byte col; for (int i = 0; i < photo.Width; i++) { for (int j = 0; j < photo.Height; j++) { color = photo.GetPixel(i, j); if (Mode == 1) col = color.R; else if (Mode == 2) col = color.G; else col = color.B; if (col < 128) photo.SetPixel(i, j, Color.FromArgb(0, 0, 0)); else photo.SetPixel(i, j, Color.FromArgb(255, 255, 255)); } } return photo; } public Bitmap BlackWhite(string path, double Mode = 1/*Mode 1=Red, 2=Green, 3=>blue*/) { Bitmap photo = new Bitmap(path); Color color; byte col; for (int i = 0; i < photo.Width; i++) { for (int j = 0; j < photo.Height; j++) { color = photo.GetPixel(i, j); if (Mode == 1) col = color.R; else if (Mode == 2) col = color.G; else col = color.B; if (col < 128) photo.SetPixel(i, j, Color.FromArgb(0, 0, 0)); else photo.SetPixel(i, j, Color.FromArgb(255, 255, 255)); } } return photo; } |
خط 10، 12 و 14 چک می کنند که مود وارد شده کدام یک از اعداد 1، 2 و یا 3 و بیشتر است و اگر 1 بود(در حالت پیش فرض اینگونه است) متغیر col را برابر مقدار قرمزی پیکسل قرار می دهد(خط 11) اگر 2 بود متغیر col را برابر مقدار سبز موجود در آن پیکسل قرار می دهد(خط 13) و در صورتی که نه 1 بود نه 2 مقدار آبی را در متغیر col می ریزد(خط 15). حال خط 16 تا 19 چک می کند که مقدار موجود در col از 128 کمتر است یا خیر و اگر کمتر بود مقدار سفید(0,0,0) را برای آن قرار می دهد و در غیر این صورت آن را برابر سیاه (255,255,255) قرار می دهد.
فکر نمی کنم نیاز به توضیحی دیگر باشد. برای توضیحات بیشتر می توانید به دو پست زیرمراجعه کنید یا در قسمت نظرات سؤال خود را بپرسید.
تا دیگر کد خداحافظ