※ 예제 적용 대상
그래프 표시
예) http://simulz.nayana.kr/zbxe/php_home
※ 특징
1. 그라데이션 이미지를 가로 크기만 조절하는게 아닌 imagecopy 함수를 사용해 원하는 크기까지만 잘라내서 표시, 백분률 출력
- 컬러 그라데이션에 좋음
그라데이션 이미지를 사용하여
GD 그래프 만들기
2. 실시간으로 이미지 파일 생성
jpg 파일이 생성된다. 함수를 바꾸면 다른 포맷으로 저장할 수 있다.
※ imagecopy 함수 설명
1. 기능: 이미지의 일부분을 복사한다.
2. 형식: imagecopy(수정할 이미지, 복사해올 이미지, 붙여넣을 X, Y위치, 복사해올 X, Y위치, 복사해올 X, Y크기);
소스 보기..
<?
// 100,10 크기에 두께 더해서 $base 이미지 만듦, 두께 1
$width = 100; // 너비
$height = 10; // 높이
$thickness = 1; // 테두리 두께
$bar_image = "grad.jpg"; // 그라데이션 이미지
$gd_image = "gd_graph.jpg"; // 출력할 이미지
$cut_width = $percent * $width / 100; // 잘라낼 너비 = % * 너비 / 100
// 최종 이미지는 두께를 포함한 크기로 계산
$bwidth = $width + $thickness * 2;
$bheight = $height + $thickness * 2;
// base = 출력 이미지, grad = 크기가 변경 된 그라데이션 이미지
$base = @imagecreate($bwidth, $bheight);
$grad = @imagecreate($width, $height);
// 이미지에 색 지정
@imagecolorallocate($base, 255, 255, 255);
// 그라데이션 이미지 불러오기
$image = imagecreatefromjpeg($bar_image);
// 그라데이션 이미지 크기 조절
@imagecopyresized($grad, $image, 0, 0, 0, 0, $width, $height, imagesx($image), imagesy($image));
// 그라데이션 이미지에서 $cut_width 길이만큼 잘라서 $base 이미지에 붙여넣기
@imagecopy($base, $grad, $thickness, $thickness, 0, 0, $cut_width, $height);
// (이미지변수, 복사해올 이미지, 붙여넣을 X, Y위치, 복사해올 X, Y위치, 복사해올 X, Y크기)
// 테두리 그리기
if ($thickness) {
$base_line = @imagecreate($bwidth, $bheight);
@imagecolorallocate($base_line, 0, 0, 0);
@imagecopy($base, $base_line, 0, 0, 0, 0, $bwidth, $thickness);
@imagecopy($base, $base_line, 0, 0, 0, 0, $thickness, $bheight);
@imagecopy($base, $base_line, $width + $thickness, 0, $width + $thickness, 0, $bwidth, $bheight);
@imagecopy($base, $base_line, 0, $height + $thickness, 0, $height + $thickness, $bwidth, $bheight);
@imagedestroy($base_line);
}
// 글자 색 지정
$textcolor = @imagecolorallocate($base, 0, 0, 0);
// $cut_width 숫자를 그래프 안 또는 바깥에 두기
if ($cut_width <= $width * 0.82) $font_x = $cut_width + 3;
else $font_x = $cut_width - 25;
@imagestring($base, "verdana", $font_x, ($bheight - 10) / 2 + 1, $percent."%", $textcolor);
// (이미지변수,폰트이름,X위치,Y위치,나타낼 문자,색상)
// JPEG 이미지 파일 생성
@imagejpeg($base, $gd_image, 100); // ($base 이미지를, 파일이름.jpg, 100% 품질로 저장)
// 메모리에서 이미지 제거
@imagedestroy($base);
@imagedestroy($grad);
@imagedestroy($image);
?>
Simulz Blog Page Counter
Visitors:

PageViews:
Posted by Simulz
댓글을 달아 주세요