Imports System
Public Class [MyClass]
Private Shared Function RGBtoCMYK(ByVal R As Double, ByVal G As Double, ByVal B As Double) As Double()
If R = 0 AndAlso G = 0 AndAlso B = 0 Then
Return New Double() {0, 0, 0, 1}
End If
R = R / 255.0 * 100
G = G / 255.0 * 100
B = B / 255.0 * 100
Dim K As Double = 100 - Math.Max(Math.Max(CInt(R), CInt(G)), CInt(B))
If K = 100 Then
Return New Double() {0, 0, 0, 100}
End If
Dim C As Double = Math.Round((100 - R - K) / (100 - K) * 100, MidpointRounding.AwayFromZero)
Dim M As Double = Math.Round((100 - G - K) / (100 - K) * 100, MidpointRounding.AwayFromZero)
Dim Y As Double = Math.Round((100 - B - K) / (100 - K) * 100, MidpointRounding.AwayFromZero)
Return New Double() {C, M, Y, K}
End Function
Public Shared Sub Main(ByVal args As String())
Dim CMYK As Double() = RGBtoCMYK(245.0F, 213.0F, 0.0F)
Console.WriteLine(String.Join(" ", CMYK))
End Sub
End Class
' run:
'
' 0 13 100 4
'