أعلن في بوابة داماس

العودة   داماس > المنتديات العلمية > كورســــــــات بوابة داماس والبرمجة
التّسجيل داماس دليل داماس فحص البيج رانك استضافة داماس تصاميم خلفيات جعل جميع المنتديات مقروءة

شرح طريقة تحويل الصور الملونه الي صور ابيض واسود

كورســــــــات بوابة داماس والبرمجة

المشاركة في الموضوع
 
Submit Tools خيارات الموضوع طريقة العرض
  #1 (permalink)  
قديم 12-05-2008, 08:52 AM
عضو

شرح طريقة تحويل الصور الملونه الي صور ابيض واسود


الاخوه الكرام

مرفق كود لتحويل الصور الملونه الي صور ابيض واسود

الكود تقريبا كامل لمن يريد استخدامه ومرفق ايضا الملف بالفيجوال استوديو 2008

الكود ببساطه يعتمد علي فتح صوره معينه وعرضها داخل PictureBox ومن ثم باستخدام +GDI وتحديدا استخدام ColorMatrix يتم اعادة رسم الصوره مره اخري بالوان ابيض واسود وبعد ذلك يتم عرض الصوره باللون الابيض والاسود داخل PictureBox اخر ومن ثم يمكن حفظ الصوره علي الهارد ديسك

كود:
Public Class Form1

    Private Sub btnOpenColorImage_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOpenColorImage.Click

        Dim dlg As OpenFileDialog = New OpenFileDialog()
        Dim imagFilter As String = "Image files (*.jpg,*.jpeg,*.bmp,*.gif,*.png)|*.BMP;*.PNG;*.JPG;*.JPEG;*.GIF"

        dlg.Filter = imagFilter

        dlg.RestoreDirectory = True


        If dlg.ShowDialog() = DialogResult.OK Then
            Dim img As Image = Image.FromFile(dlg.FileName)

            PictureBox1.Image = img.GetThumbnailImage(PictureBox1.Width, PictureBox1.Height, Nothing, Nothing)


        End If
    End Sub

    Private Sub btnConvertToGray_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConvertToGray.Click

        If PictureBox1.Image Is Nothing Then
            Dim msgString As String = "Load the Colored Image"
            Dim msgCaption As String = "Error"

            MessageBox.Show(msgString, msgCaption, MessageBoxButtons.OK, MessageBoxIcon.Warning)

        Else
            Dim grayImage As Image = PictureBox1.Image
            Dim bm As Bitmap = New Bitmap(grayImage.Width, grayImage.Height)
            Dim g As Graphics = Graphics.FromImage(bm)
            Dim cm As System.Drawing.Imaging.ColorMatrix = New System.Drawing.Imaging.ColorMatrix(New Single()() _
                 {New Single() {0.3, 0.3, 0.3, 0, 0}, _
                New Single() {0.59, 0.59, 0.59, 0, 0}, _
                New Single() {0.11, 0.11, 0.11, 0, 0}, _
                New Single() {0, 0, 0, 1, 0}, _
                New Single() {0, 0, 0, 0, 1}})

            Dim ia As System.Drawing.Imaging.ImageAttributes = New System.Drawing.Imaging.ImageAttributes()
            ia.SetColorMatrix(cm)
            g.DrawImage(grayImage, New Rectangle(0, 0, grayImage.Width, _
                                                 grayImage.Height), 0, 0, grayImage.Width, _
                                                 grayImage.Height, GraphicsUnit.Pixel, ia)
            g.Dispose()
            PictureBox2.Image = bm.GetThumbnailImage(PictureBox2.Width, PictureBox2.Height, Nothing, Nothing)

        End If

    End Sub

    Private Sub btnSaveGrayImage_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSaveGrayImage.Click

        Dim SaveFileDialog1 As New SaveFileDialog()
        SaveFileDialog1.Filter = "Image files (*.BMP, *.JPG, *.GIF)|*.bmp;*.jpg;*.gif"

        If SaveFileDialog1.ShowDialog() = DialogResult.OK Then
            If Not PictureBox1.Image Is Nothing Then
                PictureBox2.Image.Save(SaveFileDialog1.FileName)
            End If

        End If
    End Sub

End Class

توضيح اخير

الوان كل بكسل موجوده في اي صوره يتم تمثيلها ب 32 bit – وهذا الرقم يقسم كالاتي 8 لكل لون من الاحمر والاخضر والازرق و الفا Alpha أي (Red, Green, Blue, Alpha) وكل من هذه المكونات الاربعه عباره عن رقم يبدا من صفر الي 255 أي ببساطه شديده الصفر يعني انه كثافة اللون Intensity اقل ما يمكن و 255 تعني ان الكثافه اعلي ما يمكن
اما بخصوص الفا Alpha اذا كانت قيمته صفرا فهذا يعني ان الشفافيه كامله والرقم 255 يمثل اللا شفافيه الكامله Opaque
الفكتور الخاص باللون يعبر عنه بالاتي (R, G, B, A) حيث
R تمثل اللون الاحمر Red
G تمثل اللون الاخضر Green
B تمثل اللون الازرق Blue
A تمثل الفا Alpha
وهذا الفكتور اقل قيمه له هي (0, 0, 0, 0) واكبر قيمه له هي (255, 255, 255, 255)
+GDI تسمح باستخدام الارقام بين صفر وواحد 0 & 1 جيث الصفر يمثل اقل شدة كثافه للون Minimum Intensity و الواحد يمثل اقصي شدة كثافه Maximum Intensity
بالنسبه لتغيير الوان الصوره احنا بنستخدم مصفوفه كونه من 4 في 4 والنوع ده من المصفوفات يدعم فقك التغيير الخطي او الطولي Linear Transformation وده بيدعم فقط rotation & Scalling
اما التغيير غير الخطي او غير الطولي Non Linear بنستخدم معاه مصفوفه مكونه من 5 في 5 والعنصر الموجود في نقطة تقاطع الصف الخامس مع العمود الخامس في المصفوفه يجب ان يكون واحد
جرب تغير الارقام الموجوده في المصفوفه باستخدام ارقام بين الصفر والواحد وها تحس وتشوف الفرق
مثلا لو عايز الصوره تكون نيجاتيف جرب تغير الاررقام في المصفوفه كالتالي

كود:
      Dim cm As ColorMatrix = New ColorMatrix(New Single()() _
                           {New Single() {-1, 0, 0, 0, 0}, _
                            New Single() {0, -1, 0, 0, 0}, _
                            New Single() {0, 0, -1, 0, 0}, _
                            New Single() {0, 0, 0, 1, 0}, _
                            New Single() {0, 0, 0, 0, 1}})
اتمني ان الامر بقي واضح

بالتوفيق
اخوكم عمر
الملفات المرفقة
نوع الملف: rar ColorImageToGray.rar (60.5 KB, عدد مرات التحميل : 6)

آخر تعديل بواسطة a_pess ، 12-05-2008 الساعة 10:28 PM.
المشاركة في الموضوع


عدد الأعضاء الذي يتصفحون هذا الموضوع : 1 (0 عضو و 1 ضيف)
 
خيارات الموضوع
طريقة العرض


مواضيع مشابهة
الموضوع كاتب الموضوع المنتدى الردود آخر مشاركة
هــديـــة ..لأطفالنا ولك ايضا .. 900 صورة (ديزني ) ابيض واسود .. جاهزة للتلوين oneman برامج - القسم الــعــام 39 22-09-2008 02:03 AM
تحويل الصور الى 256 لون titanego تصاميم , خلفيات , فوتوشوب - فلاش - ثري دي ماكس - كورل درو - ريل درو - جرافيكس 4 16-03-2007 05:08 AM
تحويل الصور الى فلم AHJ2006 فيديو, صوتيات, برامج تحرير الفيديو, برامج الصوتيات, تحويل الامتداد والصيغ 3 20-01-2006 08:34 PM
طلب: أي برنامج تحويل الصور الى ايكون Damas برامج - القسم الــعــام 3 26-04-2005 02:10 PM
اريد برنامج تحويل الصور faten_02 برامج - القسم الــعــام 2 28-02-2004 05:15 PM

شات دردشه صور العاب بنات   فيديو hannah montana فساتين توبيكات
دردشة العاب للبنات دردشة منتديات لكي بلوتوث دردشة games for games موقع العاب فيديو

Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
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 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427