문제

2 개의 rgb 색상과 직사각형 영역이 주어지면 색상 사이에 기본적인 선형 그라디언트를 생성하고 싶습니다.빠른 검색을 수행했으며 찾을 수 있었던 유일한 것은 이블로그 항목 , 그러나 예제 코드가 누락 된 것 같거나 적어도이 게시물을 기준으로합니다.도움이되는 모든 것, 알고리즘, 코드 예제 등.이것은 Java로 작성되지만 디스플레이 레이어는 이미 처리되어 있으므로 표시 할 내용을 파악하는 방법 만 알아 내면됩니다.

도움이 되었습니까?

해결책

첫 번째 색상과 두 번째 색상 사이에 보간을 원합니다. 각 구성 요소 (R, G, B)에 대해 동일한 보간을 계산하여 색상 보간이 쉽습니다. 보간하는 방법에는 여러 가지가 있습니다. 가장 쉬운 방법은 선형 보간법을 사용하는 것입니다. 첫 번째 색상의 백분율 p 와 두 번째 색상의 백분율 1- p 를 사용합니다. 라코 디스

이와 관련된 다른 질문 이 있습니다.

때때로 더 잘 작동하는 다른 보간 방법이 있습니다. 예를 들어 종 모양 (시그 모이 드) 보간 함수를 사용하면 전환이 더 매끄럽게됩니다.

/ 편집 : 죄송합니다. 미리 정의 된 기능을 사용하는 것입니다. 좋아요, 더 쉽습니다. 이제 링크 한 블로그 게시물에 Python으로 된 예제 코드가 있습니다.

자바에서는 GradientPaint .

다른 팁

내장 된 GradientPaint 클래스. 라코 디스

기본 AWT 클래스를 사용하면 다음과 같이 할 수 있습니다. 라코 디스

David Crow의 훌륭한 답변에 대한 후속 조치, 다음은 Kotlin 예제 구현입니다. 라코 디스

를 사용하고 있습니다.RMagick .단순한 그래디언트, ImageMagick 및 래퍼 중 하나 (예 : RMagick 또는 JMagick )를 더 진행해야하는 경우Java 용)이 유용 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top