In may last year i promised to create a component which could 
take screenshots and save them in a gif image, and here it  
FINALLY is. :) 
This component can be used in ANY kind of application, royalty  
free with only 1 demand: credits! 
============================================================== 
Description: 
This component can create screenshots of the screen (or  
portions of the screen). 
You can set a region of what you want to "photograph" by  
calling the function  
=> TtspScreenCapture.SetRegion(ARegion: TCaptureRegion) 
After setting the region you must specify a capture mode. 
there are 4 capturemodes: 
- cmStillBitmap 
- cmStillJPEG 
- cmStillGIF 
- cmMotionGIF 
Now you can take a still image by calling the function 
=> TtspScreenCapture.GetStillImage: TCaptureResult; 
According to the chosen capture mode you can access the  
screenshot in the proper TGraphic object: 
=>   TCaptureResult = record 
VBitmap: TBitmap; 
     VJPEG: TJPEGImage; 
     VGIFImage: TGIFImage; 
      end; 
With these objects you can save the images to wherever you want 
them. 
Motion gifs require a little different approach. 
First you must set the capture mode to cmMotionGIF. 
Accordingly you must set the interval in which a screenshot 
should be taken by setting the property  
=> TtspScreenCapture.MotionGifInterval: integer 
This property is in milliseconds. (1 second = 1000 millisecond) 
Everything is now ready for capturing. 
To activate the capturing set the property 
=> TtspScreenCapture.Active: boolean; 
to true. 
while capturing you can read the current GIFImage by calling the  
function  
=> TtspScreenCapture.GetMotionGif: TGIFImage; 
To stop capturing set the Active property back to false. 
The final Gif image is again accesible by calling the function  
GetMotionGIF. 
====================================================================== 
Benchmark: 
The component also contains a function benchmark. this is a very simple 
function which calculates how much frames can be captured in 10 seconds. 
the result value is in captured frames per second (rounded). 
======================================================================= 
well, this wraps it up for now. 
Good luck with using this component in your application!  
Nevertheless i have 1 more thing to tell you: 
1. DON'T forget to credit me in your application. You got this for free 
   so it would be quite fair to do this simple thing. 
======================================================================== 
Have fun, 
Christiaan ten Klooster 
webmaster@tsp2000.tmfweb.nl 
www.tsp2000.tmfweb.nl 

0 comments:
Post a Comment