الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تلوين الصورة

بدأه ريماني في 7 سبتمبر 2009 · 4 رد · 700 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اريد كود يجعل الصورة تكون

1) رماديه

2) ابيض واسود

3)الصورة تكون مموجه بحيث ماتتلاحظ معالم الصورة

4) تكون الصورة كأنها مرسومه

اي واحد يعرف كود من هذي الاكواد طرشوها لي

بليززز يالله ابقي الهمه حقتكم

#2

السلام عليكــم ورحمـة الله وبركاتــه ،،

هذه طريقة تحويل الصورة إلى أبيض×أسود

  1.  
  2. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handl
    es btnGrayscale.Click
  3. Dim bmp As New Bitmap(Me.PictureBox1.BackgroundImage.Width, Me.PictureBox1.BackgroundIm
    age.Height)
  4. Dim pixel As Color, bitValue As Integer
  5. For w As Integer = 0 To Me.PictureBox1.BackgroundImage.Width - 1
  6. For h As Integer = 0 To Me.PictureBox1.BackgroundImage.Height - 1
  7. pixel = CType(Me.PictureBox1.BackgroundImage, Bitmap).GetPixel(w, h)
  8. bitValue = (CInt(pixel.R) + CInt(pixel.G) + CInt(pixel.B)) / 3
  9. bmp.SetPixel(w, h, Color.FromArgb(bitValue, bitValue, bitValue))
  10. Next
  11. Next
  12. Me.PictureBox2.BackgroundImage = bmp
  13. End Sub
  14.  

قد يفيدك هذا الرابط

http://filters.sourceforge.net/

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#3

مرحبا أخي/أختي الكريمـ(ـة) .

من الأفضل لك أن تقوم باستخدام صف يدعى ( ColorMatrix ) هذا الصف يحتاج إلى محرك ( ImageAttributes ) يقوم بإعداد قيم مصفوفة الـ ColorMatrix المرسل عبر الإجراء ( SetColorMatrix ), بشكل عام يعتبر هذا النوع من المعالجة ( باستخدام ( ImageAttributes و ColorMatrix ) ) الأسرع في أدائه, لكنه غير قادر على جعل جميع التأثيرات الشائعة ومنهم مما ذكرت في الأعلى, لكن هنالك طريقتان لعمل ذلك لا ولصنع تأثيرات جديدة بمعايير محدودة أومفتوحة للمستخدم, إحدا الطرق, هي استخدام حلقتين تكراريتين لتحصيل وتعديل الألوان عبر العمليتين ( GetPixel و SetPixel ) وهناك أيضاً طريقة أكثر صعوبة بشكل بسيط وهي استخدام الصف ( BitmapData ) والذي في الأول والأخير يقوم على أساس ( قراءة, تعديل Bytes ) .

قبل استخدام الـ( Code ) التالي عليك استدعاء المراجع التالية :

 

Imports [color= #990000;]System[color= #339933;].Drawing

Imports [color= #990000;]System[color= #339933;].Drawing[color= #339933;].Imaging

هنا مثال عن عملية تحويل ألوان الصورة إلى ألوان بتدرج رمادي :

 

    [color= #000000; font-weight: bold;]Public [color= #000000; font-weight: bold;]Function ScaleGray[color= #009900;](ByVal Pica [color= #b1b100;]As Image[color= #009900;]) [color= #b1b100;]As Image

        Using Bmp [color= #b1b100;]As Bitmap [color= #339933;]= Pica[color= #339933;].Clone[color= #009900;]([color= #009900;])

            Using IAttributes [color= #b1b100;]As [color= #000000; font-weight: bold;]New ImageAttributes

                Using G [color= #b1b100;]As Graphics [color= #339933;]= Graphics[color= #339933;].FromImage[color= #009900;](Bmp[color= #009900;])

                    IAttributes[color= #339933;].SetColorMatrix[color= #009900;]([color= #000000; font-weight: bold;]New ColorMatrix[color= #009900;]([color= #000000; font-weight: bold;]New Single[color= #009900;]([color= #009900;])[color= #009900;]([color= #009900;]) [color= #990000;]_

                    [color= #009900;]{[color= #000000; font-weight: bold;]New Single[color= #009900;]([color= #009900;]) [color= #009900;]{[color= #cc66cc;]0.29[color= #339933;], [color= #cc66cc;]0.29[color= #339933;], [color= #cc66cc;]0.29[color= #339933;], [color= #cc66cc;]0[color= #339933;], [color= #cc66cc;]0[color= #009900;]}[color= #339933;], [color= #990000;]_

                    [color= #000000; font-weight: bold;]New Single[color= #009900;]([color= #009900;]) [color= #009900;]{[color= #cc66cc;]0.59[color= #339933;], [color= #cc66cc;]0.59[color= #339933;], [color= #cc66cc;]0.59[color= #339933;], [color= #cc66cc;]0[color= #339933;], [color= #cc66cc;]0[color= #009900;]}[color= #339933;], [color= #990000;]_

                    [color= #000000; font-weight: bold;]New Single[color= #009900;]([color= #009900;]) [color= #009900;]{[color= #cc66cc;]0.12[color= #339933;], [color= #cc66cc;]0.12[color= #339933;], [color= #cc66cc;]0.12[color= #339933;], [color= #cc66cc;]0[color= #339933;], [color= #cc66cc;]0[color= #009900;]}[color= #339933;], [color= #990000;]_

                    [color= #000000; font-weight: bold;]New Single[color= #009900;]([color= #009900;]) [color= #009900;]{[color= #cc66cc;]0[color= #339933;], [color= #cc66cc;]0[color= #339933;], [color= #cc66cc;]0[color= #339933;], [color= #cc66cc;]1[color= #339933;], [color= #cc66cc;]0[color= #009900;]}[color= #339933;], [color= #990000;]_

                    [color= #000000; font-weight: bold;]New Single[color= #009900;]([color= #009900;]) [color= #009900;]{[color= #cc66cc;]0[color= #339933;], [color= #cc66cc;]0[color= #339933;], [color= #cc66cc;]0[color= #339933;], [color= #cc66cc;]0[color= #339933;], [color= #cc66cc;]1[color= #009900;]}[color= #009900;]}[color= #009900;])[color= #009900;])

                    G[color= #339933;].DrawImage[color= #009900;](Bmp[color= #339933;], [color= #000000; font-weight: bold;]New Rectangle[color= #009900;]([color= #cc66cc;]0[color= #339933;], [color= #cc66cc;]0[color= #339933;], Bmp[color= #339933;].Width[color= #339933;], Bmp[color= #339933;].Height[color= #009900;])[color= #339933;], [color= #990000;]_

                    [color= #cc66cc;]0[color= #339933;], [color= #cc66cc;]0[color= #339933;], Bmp[color= #339933;].Width[color= #339933;], Bmp[color= #339933;].Height[color= #339933;], GraphicsUnit[color= #339933;].Pixel[color= #339933;], IAttributes[color= #009900;])

                    [color= #b1b100;]Return Bmp[color= #339933;].Clone[color= #009900;]([color= #009900;])

                [color= #990000;]End Using

            [color= #990000;]End Using

        [color= #990000;]End Using

    [color= #990000;]End [color= #000000; font-weight: bold;]Function

علمية لجعل الصورة تبدو باللون الأبيض والأسود ( ليست متقنة )=( لأنه كما ذكر, ليس كل التأثيرات قابلة لتنفذ عبر هذا الصف ) .

 

    [color= #000000; font-weight: bold;]Public [color= #000000; font-weight: bold;]Function WhiteAndBlack[color= #009900;](ByVal Pica [color= #b1b100;]As Image[color= #009900;]) [color= #b1b100;]As Image

        Using Bmp [color= #b1b100;]As Bitmap [color= #339933;]= Pica[color= #339933;].Clone[color= #009900;]([color= #009900;])

            Using IAttributes [color= #b1b100;]As [color= #000000; font-weight: bold;]New ImageAttributes

                Using G [color= #b1b100;]As Graphics [color= #339933;]= Graphics[color= #339933;].FromImage[color= #009900;](Bmp[color= #009900;])

                    IAttributes[color= #339933;].SetColorMatrix[color= #009900;]([color= #000000; font-weight: bold;]New ColorMatrix[color= #009900;]([color= #000000; font-weight: bold;]New Single[color= #009900;]([color= #009900;])[color= #009900;]([color= #009900;]) [color= #990000;]_

                    [color= #009900;]{[color= #000000; font-weight: bold;]New Single[color= #009900;]([color= #009900;]) [color= #009900;]{[color= #cc66cc;]5.0[color= #339933;], [color= #cc66cc;]5.0[color= #339933;], [color= #cc66cc;]5.0[color= #339933;], [color= #cc66cc;]0.0[color= #339933;], [color= #cc66cc;]0.0[color= #009900;]}[color= #339933;], [color= #990000;]_

                    [color= #000000; font-weight: bold;]New Single[color= #009900;]([color= #009900;]) [color= #009900;]{[color= #cc66cc;]5.0[color= #339933;], [color= #cc66cc;]5.0[color= #339933;], [color= #cc66cc;]5.0[color= #339933;], [color= #cc66cc;]0[color= #339933;], [color= #cc66cc;]0.0[color= #009900;]}[color= #339933;], [color= #990000;]_

                    [color= #000000; font-weight: bold;]New Single[color= #009900;]([color= #009900;]) [color= #009900;]{[color= #cc66cc;]5.0[color= #339933;], [color= #cc66cc;]5.0[color= #339933;], [color= #cc66cc;]5.0[color= #339933;], [color= #cc66cc;]0.0[color= #339933;], [color= #cc66cc;]0.0[color= #009900;]}[color= #339933;], [color= #990000;]_

                    [color= #000000; font-weight: bold;]New Single[color= #009900;]([color= #009900;]) [color= #009900;]{[color= #cc66cc;]-5.0[color= #339933;], [color= #cc66cc;]-5.0[color= #339933;], [color= #cc66cc;]-5.0[color= #339933;], [color= #cc66cc;]1.0[color= #339933;], [color= #cc66cc;]0.0[color= #009900;]}[color= #339933;], [color= #990000;]_

                    [color= #000000; font-weight: bold;]New Single[color= #009900;]([color= #009900;]) [color= #009900;]{[color= #cc66cc;]0.5[color= #339933;], [color= #cc66cc;]0.5[color= #339933;], [color= #cc66cc;]0.5[color= #339933;], [color= #cc66cc;]0.0[color= #339933;], [color= #cc66cc;]1.0[color= #009900;]}[color= #009900;]}[color= #009900;])[color= #009900;])

                    G[color= #339933;].DrawImage[color= #009900;](Bmp[color= #339933;], [color= #000000; font-weight: bold;]New Rectangle[color= #009900;]([color= #cc66cc;]0[color= #339933;], [color= #cc66cc;]0[color= #339933;], Bmp[color= #339933;].Width[color= #339933;], Bmp[color= #339933;].Height[color= #009900;])[color= #339933;], [color= #990000;]_

                    [color= #cc66cc;]0[color= #339933;], [color= #cc66cc;]0[color= #339933;], Bmp[color= #339933;].Width[color= #339933;], Bmp[color= #339933;].Height[color= #339933;], GraphicsUnit[color= #339933;].Pixel[color= #339933;], IAttributes[color= #009900;])

                    [color= #b1b100;]Return Bmp[color= #339933;].Clone[color= #009900;]([color= #009900;])

                [color= #990000;]End Using

            [color= #990000;]End Using

        [color= #990000;]End Using

    [color= #990000;]End [color= #000000; font-weight: bold;]Function

عكس الألوان :

 

[color= #000000; font-weight: bold;]Public [color= #000000; font-weight: bold;]Function Negative[color= #009900;](Byval Pica [color= #b1b100;]As Image [color= #009900;]) [color= #b1b100;]As Image

    Using Bmp [color= #b1b100;]As Bitmap [color= #339933;]= Pica[color= #339933;].Clone[color= #009900;]([color= #009900;])

        Using IAttributes [color= #b1b100;]As [color= #000000; font-weight: bold;]New ImageAttributes

            Using G [color= #b1b100;]As Graphics [color= #339933;]= Graphics[color= #339933;].FromImage[color= #009900;]( Bmp [color= #009900;])

                IAttributes[color= #339933;].SetColorMatrix[color= #009900;]( [color= #000000; font-weight: bold;]New ColorMatrix[color= #009900;]( [color= #000000; font-weight: bold;]New Single[color= #009900;]([color= #009900;])[color= #009900;]([color= #009900;]) [color= #990000;]_

                [color= #009900;]{[color= #000000; font-weight: bold;]New Single[color= #009900;]([color= #009900;]) [color= #009900;]{[color= #cc66cc;]-1[color= #339933;], [color= #cc66cc;]0[color= #339933;], [color= #cc66cc;]0[color= #339933;], [color= #cc66cc;]0[color= #339933;], [color= #cc66cc;]0[color= #009900;]}[color= #339933;], [color= #990000;]_

                [color= #000000; font-weight: bold;]New Single[color= #009900;]([color= #009900;]) [color= #009900;]{[color= #cc66cc;]0[color= #339933;], [color= #cc66cc;]-1[color= #339933;], [color= #cc66cc;]0[color= #339933;], [color= #cc66cc;]0[color= #339933;], [color= #cc66cc;]0[color= #009900;]}[color= #339933;], [color= #990000;]_

                [color= #000000; font-weight: bold;]New Single[color= #009900;]([color= #009900;]) [color= #009900;]{[color= #cc66cc;]0[color= #339933;], [color= #cc66cc;]0[color= #339933;], [color= #cc66cc;]-1[color= #339933;], [color= #cc66cc;]0[color= #339933;], [color= #cc66cc;]0[color= #009900;]}[color= #339933;], [color= #990000;]_

                [color= #000000; font-weight: bold;]New Single[color= #009900;]([color= #009900;]) [color= #009900;]{[color= #cc66cc;]0[color= #339933;], [color= #cc66cc;]0[color= #339933;], [color= #cc66cc;]0[color= #339933;], [color= #cc66cc;]1[color= #339933;], [color= #cc66cc;]0[color= #009900;]}[color= #339933;], [color= #990000;]_

                [color= #000000; font-weight: bold;]New Single[color= #009900;]([color= #009900;]) [color= #009900;]{[color= #cc66cc;]1[color= #339933;], [color= #cc66cc;]1[color= #339933;], [color= #cc66cc;]1[color= #339933;], [color= #cc66cc;]0[color= #339933;], [color= #cc66cc;]0[color= #009900;]}[color= #009900;]}[color= #009900;])[color= #009900;])

                G[color= #339933;].DrawImage[color= #009900;]( Bmp[color= #339933;], [color= #000000; font-weight: bold;]New Rectangle[color= #009900;]( [color= #cc66cc;]0[color= #339933;], [color= #cc66cc;]0[color= #339933;], Bmp[color= #339933;].Width[color= #339933;], Bmp[color= #339933;].Height [color= #009900;])[color= #339933;], [color= #990000;]_

                [color= #cc66cc;]0[color= #339933;], [color= #cc66cc;]0[color= #339933;], Bmp[color= #339933;].Width[color= #339933;], Bmp[color= #339933;].Height[color= #339933;], GraphicsUnit[color= #339933;].Pixel[color= #339933;], IAttributes [color= #009900;])

                [color= #b1b100;]Return Bmp[color= #339933;].Clone[color= #009900;]([color= #009900;])

            [color= #990000;]End Using

        [color= #990000;]End Using

    [color= #990000;]End Using

[color= #990000;]End [color= #000000; font-weight: bold;]Function

تخفيق ملامح الصورة باستخدام الشكل الذي قام الأخ Ghost به :

 

    [color= #000000; font-weight: bold;]Public [color= #000000; font-weight: bold;]Function Smooth[color= #009900;](ByVal Pica [color= #b1b100;]As Bitmap[color= #009900;]) [color= #b1b100;]As Image

        Dim Bmp [color= #b1b100;]As [color= #000000; font-weight: bold;]New Bitmap[color= #009900;](Pica[color= #339933;].Width[color= #339933;], Pica[color= #339933;].Height[color= #009900;])

        Dim G [color= #b1b100;]As Graphics [color= #339933;]= Graphics[color= #339933;].FromImage[color= #009900;](Bmp[color= #009900;])

        G[color= #339933;].DrawImage[color= #009900;](Pica[color= #339933;], [color= #000000; font-weight: bold;]New Rectangle[color= #009900;]([color= #000000; font-weight: bold;]New Point[color= #009900;]([color= #cc66cc;]0[color= #339933;], [color= #cc66cc;]0[color= #009900;])[color= #339933;], Bmp[color= #339933;].Size[color= #009900;])[color= #339933;], [color= #000000; font-weight: bold;]New Rectangle[color= #009900;]([color= #000000; font-weight: bold;]New Point[color= #009900;]([color= #cc66cc;]0[color= #339933;], 
0[color= #009900;])[color= #339933;], Pica[color= #339933;].Size[color= #009900;])[color= #339933;], GraphicsUnit[color= #339933;].Pixel[color= #009900;])

        Dim DX [color= #b1b100;]As Integer [color= #339933;]= [color= #cc66cc;]2[color= #339933;], DY [color= #b1b100;]As Integer [color= #339933;]= [color= #cc66cc;]2

        Dim Red[color= #339933;], Green[color= #339933;], Blue [color= #b1b100;]As Integer

        Dim X[color= #339933;], Y [color= #b1b100;]As Integer

        With Pica

            [color= #b1b100;]For Y [color= #339933;]= DX To [color= #339933;].Height [color= #339933;]- DX [color= #339933;]- [color= #cc66cc;]1

                [color= #b1b100;]For X [color= #339933;]= DY To [color= #339933;].Width [color= #339933;]- DY [color= #339933;]- [color= #cc66cc;]1

                    Red [color= #339933;]= CInt[color= #009900;]([color= #009900;](CInt[color= #009900;]([color= #339933;].GetPixel[color= #009900;](X [color= #339933;]- [color= #cc66cc;]1[color= #339933;], Y [color= #339933;]- [color= #cc66cc;]1[color= #009900;])[color= #339933;].R[color= #009900;]) [color= #339933;]+ [color= #990000;]_

                    CInt[color= #009900;]([color= #339933;].GetPixel[color= #009900;](X [color= #339933;]- [color= #cc66cc;]1[color= #339933;], Y[color= #009900;])[color= #339933;].R[color= #009900;]) [color= #339933;]+ [color= #990000;]_

                    CInt[color= #009900;]([color= #339933;].GetPixel[color= #009900;](X [color= #339933;]- [color= #cc66cc;]1[color= #339933;], Y [color= #339933;]+ [color= #cc66cc;]1[color= #009900;])[color= #339933;].R[color= #009900;]) [color= #339933;]+ [color= #990000;]_

                    CInt[color= #009900;]([color= #339933;].GetPixel[color= #009900;](X[color= #339933;], Y [color= #339933;]- [color= #cc66cc;]1[color= #009900;])[color= #339933;].R[color= #009900;]) [color= #339933;]+ [color= #990000;]_

                    CInt[color= #009900;]([color= #339933;].GetPixel[color= #009900;](X[color= #339933;], Y[color= #009900;])[color= #339933;].R[color= #009900;]) [color= #339933;]+ [color= #990000;]_

                    CInt[color= #009900;]([color= #339933;].GetPixel[color= #009900;](X[color= #339933;], Y [color= #339933;]+ [color= #cc66cc;]1[color= #009900;])[color= #339933;].R[color= #009900;]) [color= #339933;]+ [color= #990000;]_

                    CInt[color= #009900;]([color= #339933;].GetPixel[color= #009900;](X [color= #339933;]+ [color= #cc66cc;]1[color= #339933;], Y [color= #339933;]- [color= #cc66cc;]1[color= #009900;])[color= #339933;].R[color= #009900;]) [color= #339933;]+ [color= #990000;]_

                    CInt[color= #009900;]([color= #339933;].GetPixel[color= #009900;](X [color= #339933;]+ [color= #cc66cc;]1[color= #339933;], Y[color= #009900;])[color= #339933;].R[color= #009900;]) [color= #339933;]+ [color= #990000;]_

                    CInt[color= #009900;]([color= #339933;].GetPixel[color= #009900;](X [color= #339933;]+ [color= #cc66cc;]1[color= #339933;], Y [color= #339933;]+ [color= #cc66cc;]1[color= #009900;])[color= #339933;].R[color= #009900;])[color= #009900;]) [color= #339933;]/ [color= #cc66cc;]9[color= #009900;])

                    Green [color= #339933;]= CInt[color= #009900;]([color= #009900;](CInt[color= #009900;]([color= #339933;].GetPixel[color= #009900;](X [color= #339933;]- [color= #cc66cc;]1[color= #339933;], Y [color= #339933;]- [color= #cc66cc;]1[color= #009900;])[color= #339933;].G[color= #009900;]) [color= #339933;]+ [color= #990000;]_

                    CInt[color= #009900;]([color= #339933;].GetPixel[color= #009900;](X [color= #339933;]- [color= #cc66cc;]1[color= #339933;], Y[color= #009900;])[color= #339933;].G[color= #009900;]) [color= #339933;]+ [color= #990000;]_

                    CInt[color= #009900;]([color= #339933;].GetPixel[color= #009900;](X [color= #339933;]- [color= #cc66cc;]1[color= #339933;], Y [color= #339933;]+ [color= #cc66cc;]1[color= #009900;])[color= #339933;].G[color= #009900;]) [color= #339933;]+ [color= #990000;]_

                    CInt[color= #009900;]([color= #339933;].GetPixel[color= #009900;](X[color= #339933;], Y [color= #339933;]- [color= #cc66cc;]1[color= #009900;])[color= #339933;].G[color= #009900;]) [color= #339933;]+ [color= #990000;]_

                    CInt[color= #009900;]([color= #339933;].GetPixel[color= #009900;](X[color= #339933;], Y[color= #009900;])[color= #339933;].G[color= #009900;]) [color= #339933;]+ [color= #990000;]_

                    CInt[color= #009900;]([color= #339933;].GetPixel[color= #009900;](X[color= #339933;], Y [color= #339933;]+ [color= #cc66cc;]1[color= #009900;])[color= #339933;].G[color= #009900;]) [color= #339933;]+ [color= #990000;]_

                    CInt[color= #009900;]([color= #339933;].GetPixel[color= #009900;](X [color= #339933;]+ [color= #cc66cc;]1[color= #339933;], Y [color= #339933;]- [color= #cc66cc;]1[color= #009900;])[color= #339933;].G[color= #009900;]) [color= #339933;]+ [color= #990000;]_

                    CInt[color= #009900;]([color= #339933;].GetPixel[color= #009900;](X [color= #339933;]+ [color= #cc66cc;]1[color= #339933;], Y[color= #009900;])[color= #339933;].G[color= #009900;]) [color= #339933;]+ [color= #990000;]_

                    CInt[color= #009900;]([color= #339933;].GetPixel[color= #009900;](X [color= #339933;]+ [color= #cc66cc;]1[color= #339933;], Y [color= #339933;]+ [color= #cc66cc;]1[color= #009900;])[color= #339933;].G[color= #009900;])[color= #009900;]) [color= #339933;]/ [color= #cc66cc;]9[color= #009900;])

                    Blue [color= #339933;]= CInt[color= #009900;]([color= #009900;](CInt[color= #009900;]([color= #339933;].GetPixel[color= #009900;](X [color= #339933;]- [color= #cc66cc;]1[color= #339933;], Y [color= #339933;]- [color= #cc66cc;]1[color= #009900;])[color= #339933;].B[color= #009900;]) [color= #339933;]+ [color= #990000;]_

                    CInt[color= #009900;]([color= #339933;].GetPixel[color= #009900;](X [color= #339933;]- [color= #cc66cc;]1[color= #339933;], Y[color= #009900;])[color= #339933;].B[color= #009900;]) [color= #339933;]+ [color= #990000;]_

                    CInt[color= #009900;]([color= #339933;].GetPixel[color= #009900;](X [color= #339933;]- [color= #cc66cc;]1[color= #339933;], Y [color= #339933;]+ [color= #cc66cc;]1[color= #009900;])[color= #339933;].B[color= #009900;]) [color= #339933;]+ [color= #990000;]_

                    CInt[color= #009900;]([color= #339933;].GetPixel[color= #009900;](X[color= #339933;], Y [color= #339933;]- [color= #cc66cc;]1[color= #009900;])[color= #339933;].B[color= #009900;]) [color= #339933;]+ [color= #990000;]_

                    CInt[color= #009900;]([color= #339933;].GetPixel[color= #009900;](X[color= #339933;], Y[color= #009900;])[color= #339933;].B[color= #009900;]) [color= #339933;]+ [color= #990000;]_

                    CInt[color= #009900;]([color= #339933;].GetPixel[color= #009900;](X[color= #339933;], Y [color= #339933;]+ [color= #cc66cc;]1[color= #009900;])[color= #339933;].B[color= #009900;]) [color= #339933;]+ [color= #990000;]_

                    CInt[color= #009900;]([color= #339933;].GetPixel[color= #009900;](X [color= #339933;]+ [color= #cc66cc;]1[color= #339933;], Y [color= #339933;]- [color= #cc66cc;]1[color= #009900;])[color= #339933;].B[color= #009900;]) [color= #339933;]+ [color= #990000;]_

                    CInt[color= #009900;]([color= #339933;].GetPixel[color= #009900;](X [color= #339933;]+ [color= #cc66cc;]1[color= #339933;], Y[color= #009900;])[color= #339933;].B[color= #009900;]) [color= #339933;]+ [color= #990000;]_

                    CInt[color= #009900;]([color= #339933;].GetPixel[color= #009900;](X [color= #339933;]+ [color= #cc66cc;]1[color= #339933;], Y [color= #339933;]+ [color= #cc66cc;]1[color= #009900;])[color= #339933;].B[color= #009900;])[color= #009900;]) [color= #339933;]/ [color= #cc66cc;]9[color= #009900;])

                    Red [color= #339933;]= Math[color= #339933;].[color= #990000;]Min[color= #009900;](Math[color= #339933;].[color= #990000;]Max[color= #009900;](Red[color= #339933;], [color= #cc66cc;]0[color= #009900;])[color= #339933;], [color= #cc66cc;]255[color= #009900;])

                    Green [color= #339933;]= Math[color= #339933;].[color= #990000;]Min[color= #009900;](Math[color= #339933;].[color= #990000;]Max[color= #009900;](Green[color= #339933;], [color= #cc66cc;]0[color= #009900;])[color= #339933;], [color= #cc66cc;]255[color= #009900;])

                    Blue [color= #339933;]= Math[color= #339933;].[color= #990000;]Min[color= #009900;](Math[color= #339933;].[color= #990000;]Max[color= #009900;](Blue[color= #339933;], [color= #cc66cc;]0[color= #009900;])[color= #339933;], [color= #cc66cc;]255[color= #009900;])

                    Bmp[color= #339933;].SetPixel[color= #009900;](X[color= #339933;], Y[color= #339933;], Color[color= #339933;].FromArgb[color= #009900;]([color= #339933;].GetPixel[color= #009900;](X[color= #339933;], Y[color= #009900;])[color= #339933;].A[color= #339933;], Red[color= #339933;], Green[color= #339933;], Blue[color= #009900;])[color= #009900;])

                [color= #990000;]Next

            [color= #990000;]Next

        [color= #990000;]End With

        [color= #b1b100;]Return Bmp

    [color= #990000;]End [color= #000000; font-weight: bold;]Function

مع العلم أنه كل ما كبر حجم الصورة أوبالأحرى أبعادها, استغرقت العملية وقت أطول, لهذا السبب لا يحبذ استخدامها

أما بالنسبة للطلب الأخير فاعتذر لأنني لم أقوم بكتابة كود له سابقاً أو حتى البحث عنه .

بالتوفيق.

تم تعديل هذه المشاركة بواسطة Bashar Rabat في 8 سبتمبر 2009 في 05:52

The important thing is not so much

that every child should be taught,

as that every child should be given the wish to learn.

#4

مرحباً !،

هذا مثال عن استخدام الـ( BitmapData ) والعمليات ( LockBits و UnlockBits ), ستلاحظ أيضا أن العامل الأساسي في استخدام الـ( BitmapData ) وتعديل قيم عمق الألوان الأساسية التي تأتي قيمة كل منها على هيئة Byte أي ( 0 إلى 255 ) إذا فالعملية ليست بتلك الصعوبة لأنها تعمل على أساس الألون الأساسية بالنسبة لصيغ الـ( RGB و ARGB ), يتم نسخ هذه القيم ( قيم أعماق كل لون ) إلى مصفوفة Bytes عبر استخدام الـ( Marshal ) ومن ثم تعديل هذه القيم بشكل مباشر عن طريق حلقة تكرارية تقوم على أساس الدوران بمقدار عدد أعماق اللون اي يمكن أن تكون ( Red, Green, Blue ) ويمكن أن تحوي ( Alpha, Red, Green, Blue ) فلذلك عليك الحذر عند التعامل مع كل نوع، هناك أيضاً أنواع أخرى من أنواع الصور, إحداها يعامل بأساس نظام ألوان الـ( Win32 ) هذا النظام يعتمد تمثيل قيم كل من ( Red, Green, Blue ) بقيمة واحدة , العملية التالية تساعدك بتعديل الصور ذات ثلاث أو أربعة أعماق, يتم تحويل اللون التي تقل مجموع قيم أعماقه عن القيمة المحددة للون الأبيض إلى لون شفاف إذا كانت أعماقه أربعة, وإلى اللون الأسود إذا كان عدد أعماق اللون ثلاثة, وبالنسبة للقيم التي تزيد عن القيمة المحددة للون الأبيض فيتم جعل قيم هذا اللون تساوي ( 255 ) أي ( أبيض ), بعد الإنتهاء من كتابة جميع القيم, يتم نسخ هذه المصفوفة إلى الـ( BitmapData ) الذي قمنا من خلاله بنسخ قيم أعماق الألوان للصورة الحالية إلى المصفوفة ( ColorValues ), بعد نسخ القيم الجديدة إلى الـ( BitmapData ) نقوم بتحرير الـ( Bits ) والتي تأتي هنا بمثابة إعداد .

المراجع المطلوبة :

 

Imports [color= #990000;]System[color= #339933;].Runtime[color= #339933;].InteropServices

Imports [color= #990000;]System[color= #339933;].Drawing

Imports [color= #990000;]System[color= #339933;].Drawing[color= #339933;].Imaging

 

    [color= #000000; font-weight: bold;]Private [color= #000000; font-weight: bold;]Function WhiteAndYourOwnBackColor[color= #009900;](ByVal Pica [color= #b1b100;]As Image[color= #339933;], [color= #990000;]_

    ByVal YOBackColor [color= #b1b100;]As Color[color= #339933;], ByVal MaxOfWhite [color= #b1b100;]As Byte[color= #009900;]) [color= #b1b100;]As Image

        Dim _NewBitmap [color= #b1b100;]As Bitmap [color= #339933;]= Pica[color= #339933;].Clone

        Dim GotAlphaChannel [color= #b1b100;]As Byte [color= #339933;]= [color= #cc66cc;]0

        With _NewBitmap

            Dim _Rectangle [color= #b1b100;]As [color= #000000; font-weight: bold;]New Rectangle[color= #009900;]([color= #000000; font-weight: bold;]New Point[color= #009900;]([color= #cc66cc;]0[color= #339933;], [color= #cc66cc;]0[color= #009900;])[color= #339933;], [color= #339933;].Size[color= #009900;])

            Dim _BitmapData [color= #b1b100;]As BitmapData [color= #339933;]= [color= #339933;].LockBits[color= #009900;](_Rectangle[color= #339933;], [color= #990000;]_

                Drawing[color= #339933;].Imaging[color= #339933;].ImageLockMode[color= #339933;].ReadWrite[color= #339933;], [color= #339933;].PixelFormat[color= #009900;])

            Dim Ptr [color= #b1b100;]As IntPtr [color= #339933;]= _BitmapData[color= #339933;].Scan0

            Dim BytesCount [color= #b1b100;]As Integer [color= #339933;]= _BitmapData[color= #339933;].Stride [color= #339933;]* _BitmapData[color= #339933;].Height

            Dim ColorValues[color= #009900;](BytesCount [color= #339933;]- [color= #cc66cc;]1[color= #009900;]) [color= #b1b100;]As Byte

            Marshal[color= #339933;].[color= #990000;]Copy[color= #009900;](Ptr[color= #339933;], ColorValues[color= #339933;], [color= #cc66cc;]0[color= #339933;], BytesCount[color= #009900;])

            Dim ColorChannelsCount [color= #b1b100;]As Byte [color= #339933;]= [color= #009900;](_BitmapData[color= #339933;].Stride [color= #339933;]/ _BitmapData[color= #339933;].Width[color= #009900;])

            GotAlphaChannel [color= #339933;]= [color= #009900;](ColorChannelsCount [color= #339933;]- [color= #cc66cc;]3[color= #009900;])

            [color= #b1b100;]For C [color= #b1b100;]As Int32 [color= #339933;]= [color= #cc66cc;]0 To ColorValues[color= #339933;].Length [color= #339933;]- [color= #cc66cc;]1 Step ColorChannelsCount

                Dim Alpha[color= #339933;], Red[color= #339933;], Green[color= #339933;], Blue [color= #b1b100;]As Int16

                Alpha [color= #339933;]= ColorValues[color= #009900;](C[color= #009900;]) [color= #339933;]: Red [color= #339933;]= ColorValues[color= #009900;](C [color= #339933;]+ GotAlphaChannel[color= #009900;])

                Green [color= #339933;]= ColorValues[color= #009900;](C [color= #339933;]+ [color= #009900;](GotAlphaChannel [color= #339933;]+ [color= #cc66cc;]1[color= #009900;])[color= #009900;]) [color= #339933;]: Blue [color= #339933;]= ColorValues[color= #009900;](C [color= #339933;]+ [color= #009900;](GotAlp
haChannel [color= #339933;]+ [color= #cc66cc;]2[color= #009900;])[color= #009900;])

                Dim RGBEQU [color= #b1b100;]As Int32 [color= #339933;]= [color= #009900;](Red [color= #339933;]+ Blue [color= #339933;]+ Green[color= #009900;])

                [color= #b1b100;]If RGBEQU [color= #339933;]> [color= #cc66cc;]0 Then

                    [color= #b1b100;]If CInt[color= #009900;](RGBEQU [color= #339933;]/ ColorChannelsCount[color= #009900;]) [color= #339933;]< MaxOfWhite Then

                        ColorValues[color= #009900;](C[color= #009900;]) [color= #339933;]= Alpha [color= #339933;]: ColorValues[color= #009900;](C [color= #339933;]+ GotAlphaChannel[color= #009900;]) [color= #339933;]= [color= #cc66cc;]0

                        ColorValues[color= #009900;](C [color= #339933;]+ [color= #009900;](GotAlphaChannel [color= #339933;]+ [color= #cc66cc;]1[color= #009900;])[color= #009900;]) [color= #339933;]= [color= #cc66cc;]0 [color= #339933;]: ColorValues[color= #009900;](C [color= #339933;]+ [color= #009900;](GotAlphaC
hannel [color= #339933;]+ [color= #cc66cc;]2[color= #009900;])[color= #009900;]) [color= #339933;]= [color= #cc66cc;]0

                    [color= #b1b100;]Else

                        [color= #b1b100;]If GotAlphaChannel [color= #339933;]= [color= #cc66cc;]1 Then ColorValues[color= #009900;](C[color= #009900;]) [color= #339933;]= Alpha

                        ColorValues[color= #009900;](C [color= #339933;]+ GotAlphaChannel[color= #009900;]) [color= #339933;]= [color= #cc66cc;]255

                        ColorValues[color= #009900;](C [color= #339933;]+ [color= #009900;](GotAlphaChannel [color= #339933;]+ [color= #cc66cc;]1[color= #009900;])[color= #009900;]) [color= #339933;]= [color= #cc66cc;]255 [color= #339933;]: ColorValues[color= #009900;](C [color= #339933;]+ [color= #009900;](GotAlph
aChannel [color= #339933;]+ [color= #cc66cc;]2[color= #009900;])[color= #009900;]) [color= #339933;]= [color= #cc66cc;]255

                    [color= #990000;]End [color= #b1b100;]If

                [color= #990000;]End [color= #b1b100;]If

            [color= #990000;]Next

            Marshal[color= #339933;].[color= #990000;]Copy[color= #009900;](ColorValues[color= #339933;], [color= #cc66cc;]0[color= #339933;], Ptr[color= #339933;], BytesCount[color= #009900;])

            [color= #339933;].UnlockBits[color= #009900;](_BitmapData[color= #009900;])

        [color= #990000;]End With

        [color= #b1b100;]If GotAlphaChannel [color= #339933;]= [color= #cc66cc;]1 Then

            Dim _ReturnBitmap [color= #b1b100;]As [color= #000000; font-weight: bold;]New Bitmap[color= #009900;](_NewBitmap[color= #339933;].Width[color= #339933;], _NewBitmap[color= #339933;].Height[color= #009900;])

            Using G [color= #b1b100;]As Graphics [color= #339933;]= Graphics[color= #339933;].FromImage[color= #009900;](_ReturnBitmap[color= #009900;])

                G[color= #339933;].Clear[color= #009900;](YOBackColor[color= #009900;])

                G[color= #339933;].DrawImage[color= #009900;](_NewBitmap[color= #339933;], [color= #cc66cc;]0[color= #339933;], [color= #cc66cc;]0[color= #009900;])

                _NewBitmap[color= #339933;].Dispose[color= #009900;]([color= #009900;])

            [color= #990000;]End Using

            [color= #b1b100;]Return _ReturnBitmap

        [color= #b1b100;]Else

            [color= #b1b100;]Return _NewBitmap

        [color= #990000;]End [color= #b1b100;]If

    [color= #990000;]End [color= #000000; font-weight: bold;]Function

الإستخدام :

 

Dim Img [color= #b1b100;]As Image [color= #339933;]= WhiteAndYourOwnBackColor[color= #009900;](Image[color= #339933;].FromFile[color= #009900;](FileName[color= #009900;])[color= #339933;], Color[color= #339933;].Red[color= #339933;], [color= #cc66cc;]128[color= #009900;])

لقراءة القيم على شكل أبعاد, يمكنك عم شي من هذا القبيل :

 

[color= #b1b100;]For Y [color= #b1b100;]As Int32 [color= #339933;]= [color= #cc66cc;]0 To _BitmapData[color= #339933;].Height [color= #339933;]- [color= #cc66cc;]1

   [color= #b1b100;]For X [color= #b1b100;]As Int32 [color= #339933;]= [color= #cc66cc;]0 To _BitmapData[color= #339933;].Width [color= #339933;]- [color= #cc66cc;]1

      Dim CPosition [color= #b1b100;]As Int32 [color= #339933;]= [color= #009900;]([color= #009900;](Y [color= #339933;]* _BitmapData[color= #339933;].Stride[color= #009900;]) [color= #339933;]+ [color= #009900;](X [color= #339933;]* ColorChannelsCount[color= #009900;])[color= #009900;])

      Dim Alpha[color= #339933;], Red[color= #339933;], Green[color= #339933;], Blue [color= #b1b100;]As Int16

      Alpha [color= #339933;]= ColorValues[color= #009900;](CPosition[color= #009900;]) [color= #339933;]: Red [color= #339933;]= ColorValues[color= #009900;](CPosition [color= #339933;]+ GotAlphaChannel[color= #009900;])

      Green [color= #339933;]= ColorValues[color= #009900;](CPosition [color= #339933;]+ [color= #009900;](GotAlphaChannel [color= #339933;]+ [color= #cc66cc;]1[color= #009900;])[color= #009900;]) [color= #339933;]: Blue [color= #339933;]= ColorValues[color= #009900;](CPosition [color= #339933;]+ [color= #009900;](
GotAlphaChannel [color= #339933;]+ [color= #cc66cc;]2[color= #009900;])[color= #009900;])

      [color= #b1b100;]If [color= #009900;](GotAlphaChannel [color= #339933;]= [color= #cc66cc;]0[color= #009900;]) Then Alpha [color= #339933;]= [color= #cc66cc;]255

      Dim Pixel [color= #b1b100;]As Color [color= #339933;]= Color[color= #339933;].FromArgb[color= #009900;]( Alpha[color= #339933;], Red[color= #339933;], Green[color= #339933;], Blue[color= #009900;])

   [color= #990000;]Next

[color= #990000;]Next

بالتوفيق .

The important thing is not so much

that every child should be taught,

as that every child should be given the wish to learn.

#5

اهلين اخووويBashar Rabat

ممكن بس وين انسخ الكود ؟ احطه في البتن ؟؟؟

؟

وممكن شرح بعض الاختصارات ابقي افهم الكود بشكل ممتاز

مواضيع مشابهة