c# convert pdf to jpg : Creating secure pdf files software control project winforms azure asp.net UWP makinggames4-part663

Chapter 2 
Pygame Basics
23 
pygame.draw.line(surface, color, start_point, end_point, width) 
This function draws a 
line between the 
start_point
and 
end_point
parameters. 
pygame.draw.lines(surface, color, closed, pointlist, width) 
This function draws a series 
of lines from one point to the next, much like 
pygame.draw.polygon()
. The only 
difference is that if you pass 
False
for the 
closed
parameter, there will not be a line from 
the last point in the 
pointlist
parameter to the first point. If you pass 
True
, then it will 
draw a line from the last point to the first. 
pygame.draw.circle(surface, color, center_point, radius, width) 
This function draws a 
circle. The center of the circle is at the 
center_point
parameter. The integer passed for 
the 
radius
parameter sets the size of the circle. 
The radius of a circle is the distance from the center to the edge. (The radius of a circle is 
always half of the diameter.) Passing 
20
for the 
radius
parameter will draw a circle that 
has a radius of 20 pixels. 
pygame.draw.ellipse(surface, color, bounding_rectangle, width) 
This function draws an 
ellipse (which is like a squashed or stretched circle). This function has all the usual 
parameters, but in order to tell the function how large and where to draw the ellipse, you must 
specify the bounding rectangle of the ellipse. A bounding rectangle is the smallest rectangle 
that can be drawn around a shape. Here’s an example of an ellipse and its bounding rectangle:
The 
bounding_rectangle
parameter can be a 
pygame.Rect
object or a tuple of four 
integers. Note that you do not specify the center point for the ellipse like you do for the 
pygame.draw.circle()
function. 
pygame.draw.rect(surface, color, rectangle_tuple, width) 
This function draws a 
rectangle. The 
rectangle_tuple
is either a tuple of four integers (for the XY coordinates 
of the top left corner, and the width and height) or a 
pygame.Rect
object can be passed 
instead. If the 
rectangle_tuple
has the same size for the width and height, a square will 
be drawn. 
pygame.PixelArray Objects 
Unfortunately, there isn’t a single function you can call that will set a single pixel to a color
(unless you call 
pygame.draw.line()
with the same start and end point). The Pygame 
framework needs to run some code behind the scenes before and after drawing to a Surface 
object. If it had to do this for every single pixel you wanted to set, your program would run much 
slower. (By my quick testing, drawing pixels this way is two or three times slower.) 
Instead, you should create a 
pygame.PixelArray
object 
(we’ll call them PixelArray objects 
for short) of a Surface object and then set individual pixels. Creating a PixelArray object of a 
Surface 
object will ―lock‖ the 
Surface object. While a Surface object is locked, the drawing 
Creating secure pdf files - C# PDF Digital Signature Library: add, remove, update PDF digital signatures in C#.net, ASP.NET, MVC, WPF
Help to Improve the Security of Your PDF File by Adding Digital Signatures
copy paste encrypted pdf; pdf password unlock
Creating secure pdf files - VB.NET PDF Digital Signature Library: add, remove, update PDF digital signatures in vb.net, ASP.NET, MVC, WPF
Guide VB.NET Programmers to Improve the Security of Your PDF File by Adding Digital Signatures
cannot print pdf security; decrypt pdf without password
24    
http://inventwithpython.com/pygame
Email questions to the author: al@inventwithpython.com 
functions can still be called on it, but it cannot have images like PNG or JPG images drawn on it 
with the 
blit()
method. (The 
blit()
method is explained later in this chapter.) 
If you want to see if a Surface object is locked, the 
get_locked()
Surface method will return 
True
if it is locked and 
False
if it is not. 
The PixelArray object that is returned from 
pygame.PixelArray()
can have individual 
pixels set by accessing them with two indexes. For example, line 28’s pixObj[480][380] = 
BLACK
will set the pixel at X coordinate 480 and Y coordinate 380 to be black (remember that 
the 
BLACK
variable stores the color tuple 
(0, 0, 0)
). 
To tell Pygame that you are finished drawing individual pixels, delete the PixelArray object with 
del
statement. This is what line 33 does. Deleting the PixelArray object 
will ―unlock‖ the 
Surface object so that you can once again draw images on it. If you forget to delete the 
PixelArray object, the next time you try to blit (that is, draw) an image to the Surface the program 
will raise an error that says, ―pygame.error: Surfaces must not be locked 
during blit‖.
The pygame.display.update() Function 
After you are done calling the drawing functions to make the display Surface object look the way 
you want, you must call 
pygame.display.update()
to make the display Surface actually 
appear on the user’s monit
or. 
The one thing that you must remember is that 
pygame.display.update()
will only make 
the display Surface (that is, the Surface object that was returned from the call to 
pygame.display.set_mode()
) appear on the screen. If you want the images on other 
Surface objects to appear on the screen, you must 
―blit‖
them (that is, copy them) to the display 
Surface object with the 
blit()
method (which is explained next 
in the ―Drawing Images‖ 
section). 
Animation 
Now that we know how to get the Pygame framework to draw to the screen
, let’s learn how to 
make animated pictures. A game with only still, unmoving images would be fairly dull. (Sales of 
my game ―Look At This Rock‖ have been disappointing.) 
Animated images are the result of 
drawing an image on the screen, then a split second later drawing a slightly different image on the 
screen. Imagine the program’s window was 6 pixels wide and 1 pixel tall, with all the pixel
white except for a black pixel at 4, 0. It would look like this: 
C# Create PDF Library SDK to convert PDF from other file formats
C#.NET PDF document file creating library control, RasterEdge XDoc for C# developers to create a highly-secure and industry-standard PDF document file.
secure pdf remove; create pdf security
C# Word - Word Creating in C#.NET
New Word File and Load Word from Other Files. C#.NET Word document file creating library control, RasterEdge C# developers to create a highly-secure and industry
change security settings on pdf; add security to pdf
Chapter 2 
Pygame Basics
25 
If you changed the window so that 3, 0 was black and 4,0 was white, it would look like this: 
To the user, it looks like the black pixel has ―moved‖ over to the left. If you redrew the w
indow 
to have the black pixel at 2, 0, it would continue to look like the black pixel is moving left: 
It may look like the black pixel is moving, but this is just an illusion. To the computer, it is just 
showing three different images that each just happen to have one black pixel. Consider if the 
three following images were rapidly shown on the screen: 
To the user, it would look like the cat is moving towards the squi
rrel. But to the computer, they’re 
just a bunch of pixels. The trick to making believable looking animation is to have your program 
draw a picture to the window, wait a fraction of a second, and then draw a slightly different 
picture. 
Here is an example program demonstrating a simple animation. Type this code into 
IDLE’s
file 
editor and save it as catanimation.py. It will also require the image file cat.png to be in the same 
folder as the catanimation.py file. You can download this image from http://invpy.com/cat.png. 
This code is available at http://invpy.com/catanimation.py. 
C# PowerPoint - PowerPoint Creating in C#.NET
PowerPoint File and Load PowerPoint from Other Files. C#.NET PowerPoint document file creating library control developers to create a highly-secure and industry
decrypt pdf password online; secure pdf
C# Word - Word Create or Build in C#.NET
quick approach for C# developers to create a highly-secure and industry document in C#.NET using this Word document creating toolkit, if Create Word From PDF.
decrypt pdf password; secure pdf file
26    
http://inventwithpython.com/pygame
Email questions to the author: al@inventwithpython.com 
1. import pygame, sys 
2. from pygame.locals import * 
3.  
4. pygame.init() 
5.  
6. FPS = 30 # frames per second setting 
7. fpsClock = pygame.time.Clock() 
8.  
9. # set up the window 
10. DISPLAYSURF = pygame.display.set_mode((400, 300), 0, 32) 
11. pygame.display.set_caption('Animation') 
12. 
13. WHITE = (255, 255, 255) 
14. catImg = pygame.image.load('cat.png') 
15. catx = 10 
16. caty = 10 
17. direction = 'right' 
18. 
19. while True: # the main game loop 
20.     DISPLAYSURF.fill(WHITE) 
21.  
22.     if direction == 'right': 
23.         catx += 5 
24.         if catx == 280: 
25.             direction = 'down' 
26.     elif direction == 'down': 
27.         caty += 5 
28.         if caty == 220: 
29.             direction = 'left' 
30.     elif direction == 'left': 
31.         catx -= 5 
32.         if catx == 10: 
33.             direction = 'up' 
34.     elif direction == 'up': 
35.         caty -= 5 
36.         if caty == 10: 
37.             direction = 'right' 
38.  
39.     DISPLAYSURF.blit(catImg, (catx, caty)) 
40.  
41.     for event in pygame.event.get(): 
42.         if event.type == QUIT: 
43.             pygame.quit() 
44.             sys.exit() 
45. 
46.     pygame.display.update() 
C# Excel - Excel Creating in C#.NET
New Excel File and Load Excel from Other Files. C#.NET Excel document file creating library control, RasterEdge developers to create a highly-secure and industry
copy text from encrypted pdf; create encrypted pdf
XDoc.HTML5 Viewer for .NET, All Mature Features Introductions
By creating, loading, and modifying annotations, you can text selecting in order to secure your web controls, PDF document, image to pdf files and components
decrypt pdf file; add security to pdf in reader
Chapter 2 
Pygame Basics
27 
47.     fpsClock.tick(FPS) 
Look at that animated cat go! This program will be much more of a commercial success than my 
game, ―Look At This Rock 2: A Different Rock‖.
Frames Per Second and pygame.time.Clock Objects 
The frame rate or refresh rate is the number of pictures that the program draws per second, and 
is measured in FPS or frames per second. (On computer monitors, the common name for FPS is 
hertz. Many monitors have a frame rate of 60 hertz, or 60 frames per second.) A low frame rate in 
video games can make the game look choppy or jumpy. If the program has too much code to run 
to draw to the screen frequently enough, then the FPS goes down. But the games in this book are 
simple enough that this won’t 
be issue even on old computers. 
pygame.time.Clock
object can help us make sure our program runs at a certain maximum 
FPS. This 
Clock
object will ensur
e that our game programs don’t run too fast
by putting in 
small pauses on each iteration of the game loop. If we didn’t have these pauses, our game 
program would run as fast as the computer could run it. This is often too fast for the player, and 
as computers get faster they would run the game faster too. A call to the 
tick()
method of a 
Clock
object in the game loop can make sure the game runs at the same speed no matter how 
fast of a computer it runs on. The 
Clock
object is created on line 7 of the catanimation.py 
program. 
7. fpsClock = pygame.time.Clock() 
The 
Clock
object’s tick()
method should be called at the very end of the game loop, after the 
call to 
pygame.display.update()
. The length of the pause is calculated based on how 
long it has been since the previous call to 
tick()
, which would have taken place at the end of 
the previous iteration of the game loop. (The first time the 
tick()
method is called, it doesn’t 
pause at all.) In the animation program, is it run on line 47 as the last instruction in the game loop. 
All you need to know is that you should call the 
tick()
method once per iteration through the 
game loop at the end of the loop. Usually this is right after the call to 
pygame.display.update()
47.     fpsClock.tick(FPS) 
Try modifying the 
FPS
constant variable to run the same program at different frame rates. Setting 
it to a lower value would make the program run slower. Setting it to a higher value would make 
the program run faster. 
VB.NET Word: VB Tutorial to Convert Word to Other Formats in .NET
it is recommended to convert Word to raster image files, like png How to Convert & Render Word to PDF in VB then converting Word to a more secure document format
change security settings pdf reader; change security on pdf
VB.NET Word: How to Convert Word Document to PNG Image Format in
to other image and document formats, including converting Word to PDF in VB Word 2007 is equipped with a more secure document protection by utilizing the modern
pdf unlock; copy from locked pdf
28    
http://inventwithpython.com/pygame
Email questions to the author: al@inventwithpython.com 
Drawing Images with pygame.image.load() and blit() 
The drawing functions are fine if you want to draw simple shapes on the screen, but many games 
have images (also called sprites). Pygame is able to load images onto Surface objects from PNG, 
JPG, GIF, and BMP image files. The differences between these image file formats is described at 
http://invpy.com/formats. 
The image of the cat was stored in a file named cat.png
. To load this file’s image, the string 
'cat.png'
is passed to the 
pygame.image.load()
function. The 
pygame.image.load()
function call will return a Surface object that has the image drawn 
on it. This Surface object will be a separate Surface object from the display Surface object, so we 
must blit (that is, copy) the 
image’s 
Surface object to the display Surface object. Blitting is 
drawing the contents of one Surface onto another. It is done with the 
blit()
Surface object 
method. 
If you get an error message like ―pygame.error: Couldn't open cat.png when 
calling 
pygame.image.load()
, then make sure the cat.png file is in the same folder as the 
catanimation.py file before you run the program. 
39.     DISPLAYSURF.blit(catImg, (catx, caty)) 
Line 39 of the animation program uses the 
blit()
method to copy 
catImg
to 
DISPLAYSURF
There are two parameters for 
blit()
. The first is the source Surface object, which is what will 
be copied onto the 
DISPLAYSURF
Surface object. The second parameter is a two-integer tuple 
for the X and Y values of the topleft corner where the image should be blitted to. 
If 
catx
and 
caty
were set to 
100
and 
200
and the width of 
catImg
was 
125
and the height 
was 
79
, this 
blit()
call would copy this image onto 
DISPLAYSURF
so that the top left corner 
of the 
catImg
was at the XY coordinate (100, 200) and the bottom right 
corner’s 
XY coordinate 
was at (225, 279). 
Note that you cannot blit to a Surfa
ce that is currently ―locked‖ (such as when a PixelArray object 
has been made from it and not yet been deleted.) 
The rest of the game loop is just changing the 
catx
caty
, and 
direction
variables so that 
the cat moves around the window. There is also a call to 
pygame.event.get()
to handle the 
QUIT
event. 
Fonts 
If you want to draw text to the screen, you could write several calls to 
pygame.draw.line()
to draw out the lines of each letter. This would be a headache to type out all those 
Chapter 2 
Pygame Basics
29 
pygame.draw.line()
calls and figure out all the XY coordinates, and probably 
wouldn’t 
look very good. 
The above message would take forty one calls to the 
pygame.draw.line()
function to 
make. Instead, Pygame provides some much simpler functions for fonts and creating text. Here is 
a small Hello World progra
m using Pygame’s font functions. Type it into IDLE’s file editor and 
save it as fonttext.py: 
1. import pygame, sys 
2. from pygame.locals import * 
3. 
4. pygame.init() 
5. DISPLAYSURF = pygame.display.set_mode((400, 300)) 
6. pygame.display.set_caption('Hello World!') 
7.  
8. WHITE = (255, 255, 255) 
9. GREEN = (0, 255, 0) 
10. BLUE = (0, 0, 128) 
11.  
12. fontObj = pygame.font.Font('freesansbold.ttf', 32) 
13. textSurfaceObj = fontObj.render('Hello world!', True, GREEN, BLUE) 
14. textRectObj = textSurfaceObj.get_rect() 
15. textRectObj.center = (200, 150) 
16. 
17. while True: # main game loop 
18.     DISPLAYSURF.fill(WHITE) 
19.     DISPLAYSURF.blit(textSurfaceObj, textRectObj) 
20.     for event in pygame.event.get(): 
21.         if event.type == QUIT: 
22.             pygame.quit() 
23.             sys.exit() 
24.     pygame.display.update() 
There are six steps to making text appear on the screen: 
1.  Create a 
pygame.font.Font object
. (Like on line 12) 
2.  Create a Surface object with the te
xt drawn on it by calling the Font object’s render()
method. (Line 13) 
3. 
Create a Rect object from the Surface object by calling the Surface object’s 
get_rect()
method. (Line 14) This Rect object will have the width and height 
correctly set for the text that was rendered, but the top and left attributes will be 
0
30    
http://inventwithpython.com/pygame
Email questions to the author: al@inventwithpython.com 
4.  Set the position of the Rect object by changing one of its attributes. On line 15, we set the 
center of the Rect object to be at 200, 150. 
5.  Blit the Surface object with the text onto the Surface object returned by 
pygame.display.set_mode()
. (Line 19) 
6.  Call 
pygame.display.update()
to make the display Surface appear on the screen. 
(Line 24) 
The parameters to the 
pygame.font.Font()
constructor function is a string of the font file to 
use, and an integer of the size of the font (in points, like how word processors measure font size). 
On line 12, we pass 
'freesansbold.ttf'
(this is a font that comes with Pygame) and the 
integer 
32
(for a 32-point sized font). 
See http://invpy.com/usingotherfonts for more info on using other fonts. 
The parameters to the 
render()
method call are a string of the text to render, a Boolean value 
to specify if we want anti-aliasing (explained later in this chapter), the color of the text, and the 
color of the background. If you want a transparent background, then simply leave off the 
background color parameter in the method call. 
Anti-Aliasing 
Anti-aliasing is a graphics technique for making text and shapes look less blocky by adding a 
little bit of blur to their edges. It takes a little more computation time to draw with anti-aliasing, 
so although the graphics may look better, your program may run slower (but only just a little). 
If you zoom in on an aliased line and an anti-aliased line, they look like this: 
To make Pygame’s text
use anti-aliasing, just pass 
True
for the second parameter of the 
render()
method. The 
pygame.draw.aaline()
and 
pygame.draw.aalines()
functions have the same parameters as 
pygame.draw.line()
and 
Chapter 2 
Pygame Basics
31 
pygame.draw.lines()
, except they will draw anti-aliased (smooth) lines instead of aliased 
(blocky) lines. 
Playing Sounds 
Playing sounds that are stored in sound files is even simpler than displaying images from image 
files. First, you must create a 
pygame.mixer.Sound
object (which we will call Sound objects 
for short) by calling the 
pygame.mixer.Sound()
constructor function. It takes one string 
parameter, which is the filename of the sound file. Pygame can load WAV, MP3, or OGG files. 
The difference between these audio file formats is explained at http://invpy.com/formats. 
To play this sound, call the Sound object’s play()
method. If you want to immediately stop the 
Sound object from playing call the 
stop()
method. The 
stop()
method has no arguments. 
Here is some sample code: 
soundObj = pygame.mixer.Sound('beeps.wav') 
soundObj.play() 
import time 
time.sleep(1) # wait and let the sound play for 1 second 
soundObj.stop() 
You can download the beeps.wav file from http://invpy.com/beeps.wav. 
The program execution continues immediately after 
play()
is called; it does not wait for the 
sound to finish playing before moving on to the next line of code. 
The Sound objects are good for sound effects to play when the player takes damage, slashes a 
sword, or collects a coin. But your games might also be better if they had background music 
playing regardless of what was going on in the game. Pygame can only load one music file to 
play in the background at a time. To load a background music file, call the 
pygame.mixer.music.load()
function and pass it a string argument of the sound file to 
load. This file can be WAV, MP3, or MIDI format.  
To begin playing the loaded sound file as the background music, call the 
pygame.mixer.music.play(-1, 0.0)
function. The 
-1
argument makes the 
background music forever loop when it reaches the end of the sound file. If you set it to an integer 
0
or larger, then the music will only loop that number of times instead of looping forever. The 
0.0
means to start playing the sound file from the beginning. If you pass a larger integer or float, 
the music will begin playing that many seconds into the sound file. For example, if you pass 
13.5
for the second parameter, the sound file with begin playing at the point 13.5 seconds in 
from the beginning. 
32    
http://inventwithpython.com/pygame
Email questions to the author: al@inventwithpython.com 
To stop playing the background music immediately, call the 
pygame.mixer.music.stop()
function. This function has no arguments. 
Here is some example code of the sound methods and functions: 
# Loading and playing a sound effect: 
soundObj = pygame.mixer.Sound('beepingsound.wav') 
soundObj.play() 
# Loading and playing background music: 
pygame.mixer.music.load(backgroundmusic.mp3') 
pygame.mixer.music.play(-1, 0.0) 
# ...some more of your code goes here... 
pygame.mixer.music.stop() 
Summary 
This covers the basics of making graphical games with the Pygame framework. Of course, just 
reading about these functions probably isn’t enough to help you learn how to make games using 
these functions. The rest of the chapters in this book each focus on the source code for a small, 
complete game. This will give you an idea of what complete game 
programs ―look like‖, so you 
can then get some ideas for how to code your own game programs. 
Unlike the ―Invent Your Own Computer Games with Python‖ book, this book assumes that you 
know the basics of Python programming. If you have trouble remembering how variables, 
functions, loops, 
if
-
else
statements, and conditions work, you can probably figure it out just 
by seeing what’s in the code and how the program behaves. But if you are still stuck, you can 
read the ―Invent with Python‖ book (it’s for people who
are completely new to programming) for 
free online at http://inventwithpython.com. 
Documents you may be interested
Documents you may be interested