Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
Solved

# Convert argb values into hsla values in vb access

Posted on 2014-02-07
Medium Priority
291 Views
I have a file of argb values in a table and would like to convert them to hsla values, not sure how to write the function for that. I am in access 13
0
Question by:PeterBaileyUk
[X]
###### Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

• Help others & share knowledge
• Earn cash & points
• 3

Author Comment

ID: 39843763
I did a little research and found this:

stackoverflow.com/questions/12373699/converting-rgba-hsl-and-hsla-colors-to-rgb-or-in-a-java-awt-color-object

I am not familiar with the method used
0

Author Comment

ID: 39843768
I also found this but it doesnt deal with hsla

One other way if its possible would be to extract the hsla values direct from the image file.
The only program I found only extracts rgba.

``````' Convert an RGB value into an HLS value.
Private Sub RgbToHls(ByVal R As Double, ByVal G As Double, _
ByVal B As Double, ByRef H As Double, ByRef L As _
Double, ByRef S As Double)
Dim max As Double
Dim min As Double
Dim diff As Double
Dim r_dist As Double
Dim g_dist As Double
Dim b_dist As Double

' Get the maximum and minimum RGB components.
max = R
If max < G Then max = G
If max < B Then max = B

min = R
If min > G Then min = G
If min > B Then min = B

diff = max - min
L = (max + min) / 2
If Abs(diff) < 0.00001 Then
S = 0
H = 0   ' H is really undefined.
Else
If L <= 0.5 Then
S = diff / (max + min)
Else
S = diff / (2 - max - min)
End If

r_dist = (max - R) / diff
g_dist = (max - G) / diff
b_dist = (max - B) / diff

If R = max Then
H = b_dist - g_dist
ElseIf G = max Then
H = 2 + r_dist - b_dist
Else
H = 4 + g_dist - r_dist
End If

H = H * 60
If H < 0 Then H = H + 360
End If
End Sub
``````
0

LVL 29

Accepted Solution

IrogSinta earned 2000 total points
ID: 39844391
The function you have above should suffice.  The Alpha value for the opacity channel stays the same when converted from argb (or rgba) to hsla.

So an argb value of (.85, 255, 0, 0) will convert to an hsla value of (0, 100%, 50%, .85).  In both color models the alpha transparency remains at .85.

Ron
0

Author Closing Comment

ID: 39861532
thx
0

## Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

You need to know the location of the Office templates folder, so that when you create new templates, they are saved to that location, and thus are available for selection when creating new documents.  The steps to find the Templates folder path are …
Traditionally, the method to display pictures in Access forms and reports is to first download them from URLs to a folder, record the path in a table and then let the form or report pull the pictures from that folder. But why not let Windows retr…
In Microsoft Access, learn different ways of passing a string value within a string argument. Also learn what a “Type Mis-match” error is about.
In Microsoft Access, when working with VBA, learn some techniques for writing readable and easily maintained code.
###### Suggested Courses
Course of the Month9 days, 1 hour left to enroll