2009-11-24 6 views
4

이전에는 이것을 할 필요가 없었으며 전에는 생각조차하지 않았습니다. RGB 값을 데이터베이스에 저장하는 가장 좋은 방법은 무엇입니까?데이터베이스에 RGB 값을 저장하십시오.

나는 몇 가지 옵션을 생각했습니다. 가장 명백한 것은 R, G 및 B를 저장하는 3 바이트 열입니다. (이 경로로 이동하고 싶지 않습니다.) 또 다른 옵션은 32 비트 int 열에 저장하는 것입니다. (나는이 방향으로 기울어 져있다)

또는 나는 단지 사소한 것을 놓치고 있을지 모른다.

+0

4 바이트 정수를 사용하는 것이 좋습니다. 가장 경제적 인 방법이라고 생각합니다. –

답변

4

32 비트 정수 열의 "낭비 된"공간으로 인해 알파 채널을 저장할 수 있습니다. 필요에 따라 알파 채널을 저장할 수 있습니다.

1

그냥 32 비트 값으로 저장하십시오. 세 가지 구성 요소가 항상 함께 있기를 원하기 때문에 3 개의 필드로 세분화 할 필요가 없습니다.

0

내 생각 엔 32 비트 정수를 저장하는 것입니다.

그러나 SQL 작업에서 각 구성 요소가 개별 열 (예 : 다른 열의 R vs G 값을 비교해야한다고 가정 할 때)이 필요하면 값을 개별 열로 구분해야합니다. R, G, B, 각 0-255 정수.

2

RGB 값은 일반적으로 RR, GG 및 BB가 R, G 및 B의 16 진 값인 0xRRGGBB 형식으로 웹에 설명됩니다. 32 비트 정수로 약간의 공간을 낭비 할 수도 있지만, 잘 알려진 형식으로 값을 저장하는 것이 잠재적으로 얻을 수있는 이점과 비교하면 많이 상상할 수 없습니다.

변환 방법에 대한 빠른 입문서가 필요한 경우에 대비하여 wikipedia이 (가) 지원됩니다.

4

맨 먼저 : 귀하의 요구 사항은 무엇입니까?

색상과 색상 만 검색해야합니까? 구성 요소를 쿼리해야합니까? 당신은 colorspace 거리로 검색해야합니까? 색상 공간 정보 (Adobe RGB 또는 sRGB)를 저장해야합니까? Best Way to represent a color in SQL을 참조하십시오.

+0

방금 ​​색상을 검색해야했습니다. 링크 및 답장을 보내 주셔서 감사합니다. –

2

웹 디자인 용으로이 번호를 저장하는 경우 char (6)을 사용하고 16 진수 문자열을 저장하는 것이 좋습니다.

확실히 32 비트 정수에서 "낭비되는"2 바이트이지만, 수학적으로 어떤 방식 으로든 비교하지 않고 CSS 파일로 역류 시키면 (예 : 문자열로 저장하면 앞뒤로 번역해야합니다.

정수로 3 진수가 아닌 것은 힘든 변환이지만 몇 바이트를 최적화하는 것이 아니라 가능한 가장 쉬운 방법을 고려해 볼 가치가 있습니다.

웹 관련 작업 이외의 작업을 수행하는 경우 채널당 8 비트 이상으로 제작하는 것이 좋습니다.

관련 문제