mirror of
				https://gitlab.com/freepascal.org/fpc/source.git
				synced 2025-10-31 12:31:38 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			83 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
| { Author   : Mike Bradbery
 | |
|   Copyright: 2000 Mike Bradbery and others, see file "forum.txt" }
 | |
| 
 | |
| program gdtest;
 | |
| 
 | |
| uses gd;
 | |
| 
 | |
| var
 | |
|   f:pFile;
 | |
|   black,white:integer;
 | |
|   red,green,blue:integer;
 | |
|   im:gdImagePtr;
 | |
|   s1,s2:string;
 | |
|   points:array[0..2] of gdpoint;
 | |
|   x : longint;
 | |
|   styleDotted: array[0..1] of longint;
 | |
|   styleDashed: array[0..5] of longint;
 | |
|   top,bottom,left,right : longint;
 | |
| 
 | |
| Begin
 | |
|   left := 60;
 | |
|   top := 30;
 | |
|   right := 580;
 | |
|   bottom := 300;
 | |
|   im:=gdImageCreate(600,390);
 | |
|   black:=gdImageColorAllocate(im,0,0,0);
 | |
|   white:=gdImageColorAllocate(im,255,255,255);
 | |
|   red:=gdImageColorAllocate(im,255,0,0);
 | |
|   green:=gdImageColorAllocate(im,0,255,0);
 | |
|   blue:=gdImageColorAllocate(im,0,0,255);
 | |
|   styleDotted[0] := red;
 | |
|   styleDotted[1] := gdTransparent;
 | |
| 
 | |
|   styleDashed[0] := white;
 | |
|   styleDashed[1] := white;
 | |
|   styleDashed[2] := white;
 | |
|   styleDashed[3] := gdTransparent;
 | |
|   styleDashed[4] := gdTransparent;
 | |
|   styleDashed[5] := gdTransparent;
 | |
|   gdImageSetStyle(im,@styleDashed[0],6 );
 | |
| 
 | |
|   {box around the lot}
 | |
|   gdImageRectangle(im,0,0,599,389,white);
 | |
| 
 | |
|   {main title}
 | |
|   s1:='The Test Graph Title.';
 | |
|   gdImageString(im, gdFontLarge,{im^.w}600  div 2 - ((length(s1)-1)*gdFontLarge^.w div 2),2{gdFontLarge^.h}, s1, white);
 | |
|   gdImageLine(im,600  div 2 - ((length(s1)-1)*gdFontLarge^.w div 2),gdFontLarge^.h+3,600  div 2 + ((length(s1)-1)*gdFontLarge^.w div 2),gdFontLarge^.h+3,white);
 | |
| 
 | |
|   {box around the legend.}
 | |
|   gdImageRectangle(im,100,350,500,370,white);
 | |
|   s1:='The Legend.';
 | |
|   gdImageString(im, gdFontLarge, 100+2, 350+2, s1, white);
 | |
| 
 | |
|   s1:='The Y axis Title.';
 | |
|   gdImageStringUp(im, gdFontLarge, Left-5-gdFontLarge^.h-gdFontLarge^.w*2, top+(bottom-top) div 2+((length(s1)-1) * gdFontLarge^.w div 2),s1, white);
 | |
|   // gdImageStringUp(im, gdFontLarge, 2, 50, @s1[1], white);
 | |
|   s1:='The X axis Title.';
 | |
|   gdImageString(im, gdFontLarge, left+(right-left) div 2-((length(s1)-1)*gdFontLarge^.w div 2),Bottom + 5 +gdFontLarge^.h,s1,white);
 | |
| 
 | |
|   {axis}
 | |
|   gdImageLine(im,left,top,left,bottom,white);
 | |
|   gdImageLine(im,left,bottom,right,bottom,white);
 | |
| 
 | |
|   { the origin is 30,360}
 | |
|   for x:=0 to 10 do
 | |
|   begin
 | |
|     str(x,s1);
 | |
|     gdImageLine(im,left+(x*(right-left) div 10) ,bottom,left+(x*(right-left) div 10) ,bottom+3,white);
 | |
|     gdImageLine(im, left+(x*(right-left) div 10), bottom, left+(x*(right-left) div 10), top, gdStyled);
 | |
|     gdImageString(im, gdFontLarge, left+(x*(right-left) div 10) - ((length(s1)-1)*gdFontLarge^.w div 2),bottom+5, s1, white);
 | |
|     gdImageLine(im,left,bottom-(x*(bottom-top) div 10),left-3,bottom-(x*(bottom-top) div 10),white);
 | |
|     gdImageLine(im, left, bottom-(x*(bottom-top) div 10), right, bottom-(x*(bottom-top) div 10), gdStyled);
 | |
|     gdImageString(im, gdFontLarge,left-5-((length(s1)-1)*gdFontLarge^.w),bottom-(x*(bottom-top) div 10)-gdFontLarge^.h div 2, s1, white);
 | |
|   end;
 | |
|   f:=fopen(paramstr(1),'wb');
 | |
|   if (f=nil) then
 | |
|     writeln('Help, the file pointer is nil');
 | |
|   gdImagePng(im,f);
 | |
|   fclose(f);
 | |
|   gdImageDestroy(im);
 | |
| End.
 | 
