스윙 기반 이미지 그림자 효과
그림처럼 스윙된 그림자 효과
프로그램을 더욱 잘 이해하기 위해 먼저Graphics2D의 몇 가지 중요한 방법을 소개한 다음에 점차적인 변화를 제어하는 클래스GradientPaint를 책임진다.
하나.Graphics2D의 세 가지 중요한 방법
translate(int x, int y);그래픽 객체를 변환(dx,dy)합니다.
scale(double sx, double sy);이 메서드는 좌표 원점을 기준으로 그래픽 객체의 크기를 조정합니다.값은 음수 값으로 좌표 축에 따라 대칭을 나타낼 수 있습니다.
rotate(double theta); 이 메서드는 좌표 원점을 중심으로 그래픽 객체를 회전합니다.
둘.GradientPaint 클래스의 역할
GradientPaint는 Java2D에서 점차적인 변화를 제어하는 클래스로 선형 색 점차적인 모드로 Shape를 채우는 방법을 제공합니다.그 구조 함수인GradientPaint(float x1,float y1,Color color1,float x2,float y2,Color color2)는 점(x1,y1)에서 점(x2,y2)으로 점차적인 변화를 진행하는 역할을 충분히 설명한다.자세한 내용은 기사 참조:
http://javapub.iteye.com/blog/781482
셋.거울 효과의 사고방식
1. 먼저 메모리 공간을 개척하여 새로운 그림을 저장하는데 사용한다. 새 그림의 사이즈는 넓이가 원 그림과 같고 높이는 원 그림의 두 배이다.
BufferedImage result = new BufferedImage(image.getWidth(), height * 2,
BufferedImage.TYPE_INT_ARGB);
2. 새 그림의 상단에 원시 그림을 그린다
// 。
g2.drawImage(image, 0, 0, null);
// 。
3. 새 그림의 중간에 검은색 선을 긋고 검은색 선의 너비는 두 픽셀이다
g2.setColor(Color.black);
g2.setStroke(new BasicStroke(2));
g2.drawLine(0, 346, 600, 346);
4. 새 그림의 아랫부분에 대칭 그림을 그린다
g2.scale(1.0, -1.0);
g2.drawImage(image, 0, -2 * height, null);
g2.scale(1.0, -1.0);
5. 새 그림의 하반부에 점차적인 변화를 설정하고,
여기서 그라데이션 값을 수정하여 다른 그라데이션 효과를 얻을 수 있습니다.예를 들어 그래디언트의 부분, 범위 등을 설정합니다.
// 。
g2.translate(0, height);
GradientPaint mask;
mask = new GradientPaint(0, 0, new Color(1.0f, 1.0f, 1.0f, 1.0f), 0,
height, new Color(1.0f, 1.0f, 1.0f, 0.0f));
g2.setPaint(mask);
g2.setComposite(AlphaComposite.DstIn);
g2.fillRect(0, 0, image.getWidth(), height);
6. 구성 요소의paintComponent 방법을 호출하여 그림을 그립니다
protected void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
g2.translate(20, 20);
g2.drawImage(image, 0, 0, null);
g2.translate(-20, -20);
}
넷.원본 코드
첨부 파일은 완전한 프로그램입니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[JAVA](Swing) 입력 받고 HTTP 요청 보내기 (GET, POST)문자열 입력받기 메이븐 추가 + jackson 추가 (IntelliJ) HTTP 요청 (HttpURLConnection) Java Swing을 이용해 문자열을 입력 받고 해당 문자열을 HTTP 요청 보내는 과정을 설...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.