(16-07-18, 01:59 AM)ابراهيم ايبو كتب : مشروع ممتاز تشكر عليه ..
هل يمكن نسخة لنفس المسروع ولكن مع الوان بصيغة CMYK اتمنى ذلك
يمكنك فعل ذلك اخى الحبيب
حتى لا اتعدى على صاحب الموضوع فى تعديل السورس بدون اذن
فيمكنك التعديل على السورس لتضيف التالى
لنقول يتم اضافة عدد 4 Label و 4 TextBox او كما تشاء
ليصبح الشكل كما فى الصورة
كل ما عليك وضع الكود التالى فى الفورم
كود :
Public Structure CMYK
Private _c As Double
Private _m As Double
Private _y As Double
Private _k As Double
Public Sub New(c As Double, m As Double, y As Double, k As Double)
Me._c = c
Me._m = m
Me._y = y
Me._k = k
End Sub
Public Property C() As Double
Get
Return Me._c
End Get
Set(value As Double)
Me._c = value
End Set
End Property
Public Property M() As Double
Get
Return Me._m
End Get
Set(value As Double)
Me._m = value
End Set
End Property
Public Property Y() As Double
Get
Return Me._y
End Get
Set(value As Double)
Me._y = value
End Set
End Property
Public Property K() As Double
Get
Return Me._k
End Get
Set(value As Double)
Me._k = value
End Set
End Property
Public Overloads Function Equals(cmyk As CMYK) As Boolean
Return (Me.C = cmyk.C) AndAlso (Me.M = cmyk.M) AndAlso (Me.Y = cmyk.Y) AndAlso (Me.K = cmyk.K)
End Function
End Structure
Public Structure RGB
Private _r As Byte
Private _g As Byte
Private _b As Byte
Public Sub New(r As Byte, g As Byte, b As Byte)
Me._r = r
Me._g = g
Me._b = b
End Sub
Public Property R() As Byte
Get
Return Me._r
End Get
Set(value As Byte)
Me._r = value
End Set
End Property
Public Property G() As Byte
Get
Return Me._g
End Get
Set(value As Byte)
Me._g = value
End Set
End Property
Public Property B() As Byte
Get
Return Me._b
End Get
Set(value As Byte)
Me._b = value
End Set
End Property
Public Overloads Function Equals(rgb As RGB) As Boolean
Return (Me.R = rgb.R) AndAlso (Me.G = rgb.G) AndAlso (Me.B = rgb.B)
End Function
End Structure
Public Shared Function RGBToCMYK(rgb As RGB) As CMYK
Dim dr As Double = CDbl(rgb.R) / 255
Dim dg As Double = CDbl(rgb.G) / 255
Dim db As Double = CDbl(rgb.B) / 255
Dim k As Double = 1 - Math.Max(Math.Max(dr, dg), db)
Dim c As Double = (1 - dr - k) / (1 - k)
Dim m As Double = (1 - dg - k) / (1 - k)
Dim y As Double = (1 - db - k) / (1 - k)
Return New CMYK(c, m, y, k)
End Function
وبالنهاية اذهب الى منطقة تنفيذ جلب الكود واستخدم الكود التالى
كود :
Dim data As New RGB(62, 121, 155)
Dim value = RGBToCMYK(data)
TextBox1.Text = Math.Round(value.C * 100) & " %"
TextBox2.Text = Math.Round(value.M * 100) & " %"
TextBox3.Text = Math.Round(value.Y * 100) & " %"
TextBox4.Text = Math.Round(value.K * 100) & " %"
وبكده تكون تمكنت من اضافة الـ CMYK
مع التنبيه ان تضع قيم كلاً من RGB بدلاً الارقام 62 و 121 و 155
تحياتى لك
وتمنياتى لك التوفيق