Vilarejo PK2P
Bem-vindo ao fórum Vilarejo PK2P! O fórum oficial do canal Press Key to Play do Youtube!

Participe do fórum, é rápido e fácil

Vilarejo PK2P
Bem-vindo ao fórum Vilarejo PK2P! O fórum oficial do canal Press Key to Play do Youtube!
Vilarejo PK2P
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Grupo para reunir as pessoas que acompanham os vídeos no canal Press Key to Play e discutir os assuntos abrangidos pelo Blog PK2P.

Últimos assuntos

» RPG de Mesa: A fronteira Volume 4: O Castelo Owlrick. (D&D5e)
por Ariano 10/12/2020, 23:18

» [tutorial] hash em C/C++ com openssl
por kodo no kami 21/9/2020, 13:37

» ping lista grafico
por kodo no kami 24/7/2020, 07:53

» [Discord] Campanha de RPG D-cyber
por Jonatan15 17/7/2020, 11:11

» [tradução] 1869 (msdos)
por kodo no kami 26/6/2020, 13:43

» [source] exemplo filtro mediano
por kodo no kami 1/6/2020, 00:24

» [tutorial] criar filtro nas imagens (python)
por kodo no kami 22/5/2020, 19:29

» Wireless IDS Sagemcom
por kodo no kami 22/4/2020, 23:50

» [source] detectar dispositivos no wifi (sagemcom)
por kodo no kami 9/3/2020, 20:25

» [tutorial] wla assemblador (65xx, 68xx, z80, 8008, 8080 e huc6280)
por kodo no kami 2/2/2020, 16:42


Você não está conectado. Conecte-se ou registre-se

[tutorial] pygame: manipulando imagens #3

Ir para baixo  Mensagem [Página 1 de 1]

kodo no kami

kodo no kami

Então galera nessa parte do tutorial vamos aprender como carregar e manipular imagens, o pygame tem a classe image com o metodo load que nos permite carregar uma imagem especifica da maquina, a gente passa como argumento a localização da imagem e o metodo retorna um tipo superficie (Surface)

Código:
#!/usr/bin/python

import pygame

pygame.init()

largura = (300,200)

janela = pygame.display.set_mode(largura)

miyuki = pygame.image.load("miyuki.png")

while True:
   for evento in pygame.event.get():
      if evento.type == pygame.QUIT:
         pygame.quit()
         exit(0)
   
   janela.fill((255,255,255))
   pygame.display.flip()

para a gente desenhar a imagem na tela usamos o metodo blit na superficie desejada (no caso na janela), nesse metodo passamos o nosso objeto da imagem seguido da posição onde vai ser desenhado naquela superficie

Código:
#!/usr/bin/python

import pygame

pygame.init()

largura = (300,200)

janela = pygame.display.set_mode(largura)

miyuki = pygame.image.load("miyuki.png")

while True:
   for evento in pygame.event.get():
      if evento.type == pygame.QUIT:
         pygame.quit()
         exit(0)
   
   janela.fill((255,255,255))
   
   janela.blit(miyuki,(100,50))
   
   pygame.display.flip()

[tutorial] pygame: manipulando imagens #3 QFo3Aht

o recomendado é usar uma imagem render em PNG ou BMP com fundo transparente

[tutorial] pygame: manipulando imagens #3 KFt0DQ2

podemos deixar o fundo transparente nas imagens usando o metodo set_colorkey e definindo a cor que vai ser transpartente, algumas imagens é necessario converter antes usando o metodo convert, na primeira imagem em volta da miyuki existe um background roxo (255,0,255) que vamos deixar ele transpartente

Código:
#!/usr/bin/python

import pygame

pygame.init()

largura = (300,200)

janela = pygame.display.set_mode(largura)

miyuki = pygame.image.load("miyuki.png")

miyuki_novo = miyuki.convert()
miyuki_novo.set_colorkey((255,0,255))

while True:
   for evento in pygame.event.get():
      if evento.type == pygame.QUIT:
         pygame.quit()
         exit(0)
   
   janela.fill((255,255,255))
   
   janela.blit(miyuki,(50,50))
   janela.blit(miyuki_novo,(150,50))
   
   pygame.display.flip()

[tutorial] pygame: manipulando imagens #3 Dae9nrS

uma forma mais inteligente é pegar a cor do pixel que vamos deixar transparente usando o metodo get_at

Código:
cor_transp = miyuki_novo.get_at((0,0))
miyuki_novo.set_colorkey(cor_transp)

para diminuir a opacidade da imagem usamos o metodo set_alpha, passamos como argumento um valor de 0 a 255

Código:
miyuki_novo.set_alpha(100)

[tutorial] pygame: manipulando imagens #3 6PzIBIr

é possivel rotacionar a imagem usando o metodo rotate da classe transform (pygame.transform.rotate), nesse metodo passamos o superficie e o valor da rotação em graus

Código:
miyuki_rotate = pygame.transform.rotate(miyuki_novo,-90)

[tutorial] pygame: manipulando imagens #3 Ts6nv6H

com o metodo scale da classe transform podemos aumentar ou diminuir o tamanho da imagem

Código:
miyuki_scale = pygame.transform.scale(miyuki_novo,(200,160))

[tutorial] pygame: manipulando imagens #3 P2OhfjF

podemos recortar uma pequena superficie de outra superficie usando o metodo subsurface daquela superficie, com isso podemos reaproveitar imagens para montar outras imagens

Código:
#!/usr/bin/python

import pygame

pygame.init()

largura = (300,200)

janela = pygame.display.set_mode(largura)

miyuki = pygame.image.load("miyuki.png")
railgun = pygame.image.load("railgun.png")

cabeca_miyuki = miyuki.subsurface([20,0,50,50])
railgun.blit(cabeca_miyuki,(85,0))

while True:
   for evento in pygame.event.get():
      if evento.type == pygame.QUIT:
         pygame.quit()
         exit(0)
   
   janela.fill((255,255,255))
   
   janela.blit(railgun,(50,10))
   
   pygame.display.flip()

[tutorial] pygame: manipulando imagens #3 G44ZC6D

bom galera é isso, ate a proxima parte desse tutorial \o

by kodo no kami

https://eofclub.in/forum

Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos