etc./StackOverFlow

색상의 16진수 투명도 [중복]

청렴결백한 만능 재주꾼 2023. 4. 9. 15:43
반응형

질문자 :SweSnow


16진수 색상 값을 올바르게 가져오는 데 문제가 있지만 앱 위젯에 대한 위젯 투명도 옵션을 구현하는 중입니다. 16진수 색상 투명도에 대해 완전히 새롭기 때문에 내 질문에 대한 특정 답변을 찾을 수 없었지만 조금 검색했습니다.

16진수 색상으로 투명도를 설정하고 싶으므로 내 16진수 색상 ID가 "#33b5e5"이고 50% 투명하기를 원합니다. 그런 다음 80은 50%이므로 "#8033b5e5"를 사용하겠습니다.

여기에서 유용한 차트를 찾았습니다. http://www.dtp-aus.com/hexadeci.htm . 이 데이터를 사용하여 다음과 같은 결과를 얻을 수 있었습니다.

 0% = #00 10% = #16 20% = #32 30% = #48 40% = #64 50% = #80 60% = #96 70% = #112 80% = #128 90% = #144

이제 문제는 16진수에서 100보다 높을 때 나타나기 시작합니다. 16진수 색상 코드는 8개의 기호만 사용할 수 있습니다. 맞나요? 예를 들어 #11233b5e5(80%)가 충돌합니다.

더 높은 숫자도 사용할 수 있도록 하려면 어떻게 해야 합니까?



다음은 16진수 값에 대한 올바른 백분율 표입니다. 예를 들어 50% 흰색의 경우 #80FFFFFF를 사용합니다.

  • 100% — FF
  • 95% — F2
  • 90% — E6
  • 85% — D9
  • 80% — CC
  • 75% — BF
  • 70% — B3
  • 65% — A6
  • 60% — 99
  • 55% - 8C
  • 50% — 80
  • 45% — 73
  • 40% — 66
  • 35% — 59
  • 30% — 4D
  • 25% — 40
  • 20% — 33
  • 15% — 26
  • 10% — 1A
  • 5% — 0D
  • 0% — 00

( 출처 )


Ben Clayton

짧은 답변

16진수 값에 대한 전체 백분율 테이블을 보고 https://play.golang.org/p/l1JaPYFzDkI의 이 플레이그라운드에서 코드를 실행할 수 있습니다.

의사 코드의 간단한 설명

16진수 값에 대한 백분율

  1. 십진수 = 백분율 * 255 / 100 . 예 : 십진수 = 50*255/100 = 127.5
  2. 10진수 를 16진수 값으로 변환합니다. 예: 10진수로 127.5 = 7*16ˆ1 + 15 = 16진수로 7F

16진수 값을 백분율로

  1. 16진수 값을 10진수로 변환합니다. 예: D6 = 13*16ˆ1 + 6 = 214
  2. 백분율 = (소수점 값) * 100 / 255. 예: 214 *100/255 = 84%

10진수 <=> 16진수 변환에 대한 추가 정보

긴 대답: 머리로 계산하는 방법

문제는 일반적으로 교차 곱셈 으로 해결할 수 있습니다.

퍼센트(0 ~ 100 범위)와 16진수로 변환된 다른 숫자(0 ~ 255 범위)가 있습니다.

  • 100 <==> 255(16진수의 FF)
  • 0 <==> 0(16진수로 00)

1%

  • 1 * 255 / 100 = 2,5
  • 2,5는 반올림하면 2입니다.

2%

  • 2 * 255 / 100 = 5
  • 헥사에서 5 는 5입니다.

베스트 답변의 표는 5% 단위로 백분율을 제공합니다.

당신의 머리에서 사이의 숫자를 계산하는 방법? 2.5 증분으로 인해 첫 번째에 2를 추가하고 다음에 3을 추가합니다.

  • 95% — F2 // 시작
  • 96% — F4 // F2에 2 더하기
  • 97% — F7 // 3을 더합니다. 또는 F2 + 5 = F7
  • 98% — F9 // 2 추가
  • 99% — FC // 3 추가. 9 + 3 = 12 in hexa : C
  • 100% — FF // 2 더하기

나는 결과가 어디에서 왔는지 모르는 답표를 보여주는 것보다 솔루션을 찾는 방법을 가르치는 것을 선호합니다.

사람에게 물고기를 주면 하루 동안 먹일 수 있습니다. 사람에게 고기 잡는 법을 가르치면 평생 먹여 살릴 수 있습니다.


Raymond Chenon

색상 16진수 표기법은 다음과 같습니다. #AARRGGBB

  • A : 알파
  • R : 빨간색
  • G : 녹색
  • B : 파란색

먼저 16진수 가 어떻게 작동하는지 살펴봐야 합니다. 최대 FF까지 쓸 수 있습니다.


erkangur

그 차트에는 백분율이 표시되지 않습니다. "#90"은 "90%"가 아닙니다. 해당 차트는 16진수에서 10진수로의 변환을 보여줍니다. 16진수 90(일반적으로 0x90으로 표시)은 10진수 144와 같습니다.

16진수는 16진수이므로 각 숫자는 0과 F 사이의 값입니다. 2바이트 16진수 값(예: 색상의 투명도)에 대한 최대값은 0xFF 또는 10진수로 255입니다. 따라서 100%는 0xFF입니다.


Bryan Herbst

Android 앱을 위한 이 작은 도우미 메서드를 만들었습니다.

 /** * @param originalColor color, without alpha * @param alpha from 0.0 to 1.0 * @return */ public static String addAlpha(String originalColor, double alpha) { long alphaFixed = Math.round(alpha * 255); String alphaHex = Long.toHexString(alphaFixed); if (alphaHex.length() == 1) { alphaHex = "0" + alphaHex; } originalColor = originalColor.replace("#", "#" + alphaHex); return originalColor; }

dwbrito

여기에 이미지 설명 입력

이것은 매우 늦은 답변일 수 있습니다. 하지만 이 차트는 그것을 죽입니다.

모든 백분율 값은 16진수 값에 매핑됩니다.

https://web.archive.org/web/20200812155307/http://online.sfsu.edu/chrism/hexval.html


amalBit

Google 검색에서 이것을 시도 하십시오 (또는 여기를 클릭하십시오 )

255 * .2 to hex

결과적으로 0x33 을 생성합니다.

그러나 Google은 값을 반올림하지 않으므로 1자리 승수만 사용할 수 있습니다. .85를 사용하려면 먼저 반올림된 값 255 * .85를 가져온 다음 (rounded-value here) to hex 로 입력해야 합니다.


chjarder

나는 이것이 오래된 질문이라는 것을 알고 있지만 비슷한 일을 할 때 그것을 발견했습니다.

SASS를 사용하면 RGBA를 16진수 ARGB로 변환하는 매우 우아한 방법이 있습니다: ie-hex-str . 나는 이것을 mixin에서 사용했습니다.

 @mixin ie8-rgba ($r, $g, $b, $a){ $rgba: rgba($r, $g, $b, $a); $ie8-rgba: ie-hex-str($rgba); .lt-ie9 &{ background-color: transparent; filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#{$ie8-rgba}', endColorstr='#{$ie8-rgba}'); } } .transparent{ @include ie8-rgba(88,153,131,.8); background-color: rgba(88,153,131,.8); }

출력:

 .transparent { background-color: rgba(88, 153, 131, 0.8); } .lt-ie9 .transparent { background-color: transparent; filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#CC589983', endColorstr='#CC589983'); zoom: 1; }


fontophilic

파이썬을 사용하여 이것을 계산합니다(예: 파이썬 3으로 작성), 50% 투명도:

 hex(round(256*0.50))

:)


Geng Jiawen

나는 항상 int/hex alpha 값을 확인하기 위해 여기에 옵니다. 따라서 내 Java utils 클래스에서 간단한 메소드를 작성하십시오. 이 방법은 백분율을 16진수 값으로 변환하고 색상 코드 문자열 값에 추가합니다.

 public static String setColorAlpha(int percentage, String colorCode){ double decValue = ((double)percentage / 100) * 255; String rawHexColor = colorCode.replace("#",""); StringBuilder str = new StringBuilder(rawHexColor); if(Integer.toHexString((int)decValue).length() == 1) str.insert(0, "#0" + Integer.toHexString((int)decValue)); else str.insert(0, "#" + Integer.toHexString((int)decValue)); return str.toString(); }

따라서 Utils.setColorAlpha(30, "#000000") #4c000000 줄 것입니다.


Amad Yus

출처 : http:www.stackoverflow.com/questions/15852122/hex-transparency-in-colors

반응형