Java에서 임의의 색상 생성

Farkhanda Athar 2023년10월12일
Java에서 임의의 색상 생성

색상 클래스는 표준 RGB 색상 공간에 있는 색상 또는 색상 공간이라는 용어로 정의된 모든 색상 공간의 색상을 정의하는 데 사용됩니다. 각 색상에는 암시적으로 1.0으로 설정된 알파 번호와 생성자가 지정하는 명시적 값이 할당됩니다. 알파 값은 색상의 투명도를 정의합니다. 1.0 또는 0에서 255 사이의 0.0 범위 내에서 임의의 부동 소수점으로 표시됩니다. 1.0 또는 255인 숫자는 색조가 불투명함을 나타내고 0 또는 0.0의 알파 값은 투명함을 나타냅니다.

명시적 알파를 사용하여 색상을 생성하거나 색상 구성 요소의 알파 및 색상 구성 요소를 가져올 때 알파 구성 요소를 미리 곱하지 마십시오. 2D(tm) Java API 2D(tm) API를 사용하는 기본 색상 공간은 제안된 표준 RGB 색상 공간인 sRGB입니다.

random 라이브러리를 사용해야 합니다.

import java.util.Random;

랜덤 생성기를 생성합니다.

Random rand = new Random();

색은 파랑, 빨강, 초록으로 나누어져 있기 때문에 임의의 원색을 만들어 완전히 새로운 색을 만들 수 있습니다. 여기서 Java Color 클래스는 0에서 1까지 3개의 부동 소수점을 허용합니다.

float r = rand.nextFloat();
float g = rand.nextFloat();
float b = rand.nextFloat();

최종 색상을 만들려면 기본 색상을 생성자에 입력합니다.

Color randomColor = new Color(r, g, b);

또한 이 방법을 사용하여 특정 색상에 더 집중하여 임의의 색상을 만들어 다양한 임의 효과를 만들 수 있습니다. 파란색과 초록색을 더 많이 넣어 핑크빛 랜덤 컬러를 연출한다. 다음 코드는 더 많은 빨간색(보통 분홍빛이 도는)으로 임의의 색상을 만들 수 있습니다.

float r = rand.nextFloat();
float g = rand.nextFloat() / 2f;
float b = rand.nextFloat() / 2f;

밝은 색상만 생성되도록 하려면 색상 스펙트럼의 각 요소가 최소 0.5개인 색상을 생성할 수 있습니다. 다음 코드는 밝거나 밝은 음영만 생성합니다.

float r = rand.nextFloat() / 2f + 0.5;
float g = rand.nextFloat() / 2f + 0.5;
float b = rand.nextFloat() / 2f + 0.5;

예를 들어 이 Color 클래스 내에서 다른 많은 색상 기능을 활용하여 색상을 더 밝게 만들 수 있습니다.

randomColor.brighter();

예제 코드

import java.awt.*;
import javax.swing.*;

class color extends JFrame {
  // constructor
  color() {
    super("color");
    Color c = Color.yellow;
    JPanel p = new JPanel();
    p.setBackground(c);

    setSize(200, 200);
    add(p);
    show();
  }

  // Main Method
  public static void main(String args[]) {
    color c = new color();
  }
}

Java 색상에 대한 몇 가지 유용한 팁

  • random()을 시작하는 이상한 위치 - 이것은 생성된 color() 함수 또는 정적 초기화에서 발생합니다. 현재로서는 임의 생성기를 프로그램의 매개변수로 추가해야 하는 것이 약간 이상합니다. 정적 초기화 사용을 고려해야 합니다.
  • 이상한 마법의 숫자 16777215. 이 번호는 무엇입니까? 가장 높은 색상 값이 0xFFFFFF인지 완전히 확신할 수 없습니다. 다음 Int(n)은 0과 n 사이의 정수를 제공한다는 점에 유의하는 것이 중요합니다. 그러나 숫자 n은 포함하지 않습니다. 또한 0x1000000을 사용해야 합니다.
  • 6캐릭터로 보이도록 속임. 16진수로 변환하기 전에 0x1000000에 숫자를 곱하면 6자리가 됩니다. 즉, 6개의 문자를 얻는 데 트릭이 필요하지 않습니다. 루프를 사용하는 대신 하위 문자열로 반환할 수도 있습니다.。

관련 문장 - Java Color