FANDOM


Working with ImagesEdit

Working with images in psp2d is essential to make your app nicer. Opening an image is simple as we saw before:

image = psp2d.Image("image.png")


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 imageEdit

You can place an image anywhere on the screen based on the x y coordinates.

screen = psp2d.Screen()
image = psp2d.Image("image.png")
screen.blit(image, dx=50, dy=50)

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.

RedimentioningEdit

Just like placing, redimentioning takes place at the time of doing a screen.blit:

screen.blit(image, dw=50, dh=50, blend=True)

dw and dh are values for width and height respectively.

Let's take a look at this code:

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: break


and it's result:

Example

PYTHON image manipulation sample by Acid_Snake


Working with colorsEdit

The function psp2d.Color is used to create color palettes based on an RGB basis:

psp2d.Color(R,G,B)


with that said, to make the red color we use:

psp2d.Color(255,0,0)

0 is minimum and 255 maximum. The same applies to green and blue:

psp2d.Color(0,255,0) # Green
psp2d.Color(0,0,255) # 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:

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)

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:

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()


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:

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 now


This is all for now.

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.