서브메뉴
검색
본문
Powered by NAVER OpenAPI
-
자바로 만드는 애니메이션 그래픽스
저자 : 쳇 하스
출판사 : 에이콘출판
출판년 : 2009
정가 : 38000, ISBN : 9788960771000
책소개
멋진 리치 클라이언트란 뛰어난 그래픽을 지녀 정말 멋져 보이는 리치 애플리케이션을 뜻한다. 화려하고 멋진 리치 클라이언트는 사용자를 강하게 끌어들이고 흥분해 손을 뗄 수 없게 만든다. 리치 클라이언트의 핵심은 그래픽스와 애니메이션 이펙트다. 이들 이펙트를 사용하면 매력적인 GUI와, 애플리케이션을 살아 숨쉬게 하는 역동적인 이펙트, 애플리케이션의 논리적 흐름과 사용자를 연결시키는 애니메이션 장면전환 등을 통해 사용자의 경험을 향상시킬 수 있다. 또한 애플리케이션을 풍부하게 만드는 이펙트를 효율적으로 구현하는 방법도 다룬다.
이 책에서는 더 효율적이고 멋진 애플리케이션을 잘 만들어 사용자 경험을 극대화하는 방법을 제시한다. 자바와 스윙을 어느 정도 알고 있는 독자를 대상으로 하였으며, 책 여기저기에는 모든 데스크탑 자바 프로그래머에게 유용한 흥미로운 토막 상식을 많이 담았다.
목차
1부 그래픽스와 GUI 기초
1장 데스크탑 자바 그래픽스 API: 스윙, AWT, 자바 2D
추상 윈도우 툴킷
자바 2D
스윙
2장 스윙 렌더링 기초
이벤트
스윙 페인트
비동기식 리페인트 요청
동기식 페인트 요청
스윙 렌더링
paint()
setOpaque()
이중 버퍼링
스레드 다루기
스레드 모델
타이머와 이벤트 해석 스레드
SwingWorker를 사용한 간편한 스레드 사용
스레드 관련 내용 요약
3장 그래픽스 기초
자바 2D
렌더링
그래픽스 객체 얻기
그래픽스 상태
이미지 확대축소 관련 힌트
도형 안티앨리어스 힌트
텍스트 안티앨리어스 힌트
그래픽 기본요소
4장 이미지
이미지 타입
BufferedImage
이미지 확대축소
품질과 성능
getFasterScaledInstance(): 더 빠르고 좋은 품질의 확대축소 이미지를 제공하는 유틸리티
5장 성능
클립 사용
호환 이미지
걱정해야 할 것들
관리되는 이미지란?
이미지 호환시키기
관리되는 이미지
DataBuffer 객체 접근
이미지 내의 잦은 렌더링
중간생성 이미지
기본 개념
동작 원리
유의사항
요약
기본 렌더링 최적화
성능 측정
명령행 플래그
렌더링
성능 디버깅
2부 고급 그래픽 렌더링
6장 컴포지트
알파 컴포지트
알파 컴포지트의 12 규칙
Clear
Dst
DstAtop
DstIn
DstOut
DstOver
Src
SrcAtop
SrcIn
SrcOut
SrcOver
Xor
AlphaComposite 생성과 설정
AlphaComposite의 일반적인 사용법
Clear 사용하기
SrcOver 사용하기
SrcIn 사용하기
AlphaComposite 사용시 주의사항
자신만의 컴포지트 작성
Add 컴포지트
CompositeContext 구현
픽셀 합성
요약
7장 그래디언트
이중 선형 그래디언트
정규 그래디언트를 활용한 특수 효과
다단 선형 그래디언트
방사형 그래디언트
그래디언트 최적화
그래디언트 캐시하기
더 똑똑하게 캐시하기
반복되는 그래디언트 최적화하기
8장 이미지 프로세싱
이미지 필터
BufferedImageOp로 이미지 처리하기
AffineTransformOp
ColorConvertOp
ConvolveOp
커널 구성하기
경계에 대한 작업
LookupOp
RescaleOp
사용자 정의 BufferedImageOp
기반 필터 클래스
색조 변경 필터
필터 성능에 대한 이야기
요약
9장 글라스 페인
글라스 페인에 그리기
최적화된 글라스 페인 페인팅
입력 이벤트 가로채기
마우스 이벤트 관련 주의사항
10장 레이어드 페인
레이어드 페인 레이어 사용하기
단일 레이어 내에서 컴포넌트 정렬
레이어드 페인과 레이아웃
여러 레이아웃을 사용해서 JLayeredPane 대체하기
11장 리페인트 매니저
스윙이 너무 똑똑할 때
RepaintManager와 첫 대면
RepaintManager 관리하기
RepaintManager로 구현한 반사상
반사상을 위한 공간 만들기
반사상 그리기
더 바보같은, 그래서 더 똑똑한 RepaintManager
요약
3부 애니메이션
12장 애니메이션 기초
시간에 대해서
기초 개념
프레임 기반 애니메이션
프레임 비율
시간 기반 모션
타이밍(그리고 플랫폼 타이밍 유틸리티)
"지금 몇시죠?"
"모닝콜을 부탁해요."
"다시 불러줘요. 또다시. 또다시."
해상도
System.currentTimeMillis()와 System.nanoTime()의 해상도
슬립 해상도
타이머 해상도
해상도에 대한 해상도
스윙 애플리케이션 움직이게 하기
움직이는 그래픽
움직이는 GUI
요약
13장 매끄러운 움직임
배경: 왜 애니메이션이 어색하게 보일까?
애니메이션이 버벅거리는 원인과 부드럽게 만드는 법
타이밍이 모든 것이다
색상: 차이가 무엇일까?
수직 회기: 동기화된 감각
SmoothMoves: 데모
그래픽스 객체 생성
타이머 실행
렌더링
렌더링 옵션
요약
14장 타이밍 프레임워크: 기초
소개
핵심 개념
Animator 클래스
콜백
지속시간
반복
해상도
시작 동작
보간
가속과 감속
보간자
요약
15장 타이밍 프레임워크: 고급 기능
트리거
개념과 사용법
트리거 상위클래스
내장 트리거
프로퍼티 설정자
PropertySetter 클래스
Evaluator
키프레임
요약
4부 이펙트
16장 정적 이펙트
블러
사용목적
간단한 블러
가우시안 블러
성능향상 기법
반사
사용목적
반사 그리기
블러 적용 반사
드롭 섀도우
사용 목적
간단한 드롭 섀도우
사실적인 드롭 섀도우
강조
사용목적
명도 높이기
스팟라이트
가독성 개선을 위한 텍스트 강조
샤픈
사용목적
단순 샤픈
언샤프 마스크
축소된 이미지에 샤픈 적용
요약
17장 동적 이펙트
움직임
사용목적
갑니다, 갑니다, 넘어갔습니다!
페이드
사용목적
페이드 전략
AlphaComposite 페이드
색상 페이드
크로스페이드
페이드 쉽게 하기
펄스
사용목적
펄스 느끼기
자동 백열
약동하는 펄스
스프링
사용목적
스프링 대활약
모핑
사용목적
버튼 모핑하기
요약
18장 애니메이션 장면전환
애플리케이션 상태를 끊김없이 전환하기
기본 개념
애니메이션 장면전환: 라이브러리
애니메이션 애플리케이션 상태
GUI 상태
API
이펙트
GUI 구조
그림과 이미지홀더
ScreenTransition
애니메이트 장면전환: 스윙에게 대체 어떤 일을 시키고 있을까?
몰래 다음 화면 채비하기
레이아웃을 펼쳐보자: 레이아웃을 서서히 변화시키기
스윙을 춤추게 하자: 성능
요약
19장 멋진 리치 클라이언트의 탄생
에어리스
에어리스의 실행
직접 해보기
작업흐름도 페이퍼 디자인
비전
화면 구성 디자인
목업
목업에서 코드까지
레이어 사용하기
블렌딩 모드
안내선 사용
난 예술가가 아니라구!
알맞은 색상 선택
디자인 서적 읽기
요약
프로젝트
맺음말
자바 사이트
저자의 사이트
(당신의 이름이 들어갈 자리)