[Tutorial] Python PSP Programming Part III
Posted: Sun Aug 19, 2012 11:46 am
Working with Images.
Working with images in psp2d is essential to make your app nicer. Opening an image is simple as we saw before:
An image can be of any size up to the psp's screen resolution (480x272), and it can be moved around, resized, blend, cleared, etc
Placing an image:
You can place an image anywhere on the screen based on the x y coordinates.the values dx and dy takes care of placing the image into the coordinates you give it, if none are given then the default (dx=0, dy=0) is used.
Redimentioning:
Just like placing, redimentioning takes place at the time of doing a screen.blit:dw and dh are values for width and height respectively.
Let's take a look at this code:
and it's result:
Working with colors:
The function psp2d.Color is used to create color palettes based on an RGB basis:
with that said, to make the red color we use:
0 is minimum and 255 maximum. The same applies to green and blue:
If you have ever studied art class you probably know that mixing different colors give you another color, here is some other colors I have found through trial and error:
CLEAR_COLOR is nothing more than black. Play around with the different numbers to get different colors.
Here is the example code for psptools' pixel fixer:
There is no much mystery here, basically the same code gets repeted over and over again until the user press circle, the main code is:
This is all for now.
Previous: viewtopic.php?f=5&t=13373
Next: viewtopic.php?f=37&t=33157
Working with images in psp2d is essential to make your app nicer. Opening an image is simple as we saw before:
Code: Select all
image = psp2d.Image("image.png")Placing an image:
You can place an image anywhere on the screen based on the x y coordinates.
Code: Select all
screen = psp2d.Screen()
image = psp2d.Image("image.png")
screen.blit(image, dx=50, dy=50)Redimentioning:
Just like placing, redimentioning takes place at the time of doing a screen.blit:
Code: Select all
screen.blit(image, dw=50, dh=50, blend=True)Let's take a look at this code:
Code: Select all
import psp2d
screen = psp2d.Screen()
image = psp2d.Image("ICON0.PNG")
screen.blit(image, dx=50, dy=50)
screen.blit(image, dx=200, dy=150, dw=32, blend=True)
screen.swap()
while True:
pad = psp2d.Controller()
if pad.circle: breakWorking with colors:
The function psp2d.Color is used to create color palettes based on an RGB basis:
Code: Select all
psp2d.Color(R,G,B)Code: Select all
psp2d.Color(255,0,0)Code: Select all
psp2d.Color(0,255,0) # Green
psp2d.Color(0,0,255) # BlueCode: Select all
WHITE_COLOR = psp2d.Color(255,255,255)
CLEAR_COLOR = psp2d.Color(0,0,0)
RED_COLOR = psp2d.Color(255, 0, 0)
GREEN_COLOR = psp2d.Color(0, 255, 0)
BLUE_COLOR = psp2d.Color(0,50,255)
YELLOW_COLOR = psp2d.Color(255,255,0)Here is the example code for psptools' pixel fixer:
Code: Select all
def pixel_fix():
# Stuck pixel fixer
x12 = True
log.write("pixel fixer started\n")
while x12 == True:
pad = psp2d.Controller()
time.sleep(0.07)
img.clear(WHITE_COLOR)
scr.blit(img)
scr.swap()
time.sleep(0.07)
img.clear(RED_COLOR)
scr.blit(img)
scr.swap()
time.sleep(0.07)
img.clear(GREEN_COLOR)
scr.blit(img)
scr.swap()
time.sleep(0.07)
img.clear(BLUE_COLOR)
scr.blit(img)
scr.swap()
time.sleep(0.07)
img.clear(YELLOW_COLOR)
scr.blit(img)
scr.swap()
if pad.triangle:
x12 = False
log.write("pixel fixer ended by user\n")
main()Code: Select all
time.sleep(0.07) # Delay between screen change
img.clear(COLOR) # The color to fill the screen with, this is the only thing that changes in the entire function
scr.blit(img) # You should already know this by now
scr.swap() # # You should already know this by nowPrevious: viewtopic.php?f=5&t=13373
Next: viewtopic.php?f=37&t=33157