Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

R peralva/pythonpixel #437

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 46 additions & 0 deletions content/brazilian-portuguese/python-pixel/Activities/Activity-1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
---
title: "Atividade 1: Crie um quadro colorido"
prereq: "Python: Fundamentos, manipulação de imagens em Python: abrir uma imagem, Python: cores e pixels"
difficulty: "Intermediário"
date: 2020-07-11T00:00:00Z
weight: 1
draft: false
---

## Exemplo de quadro colorido básico

Aqui está um exemplo de como fazer um quadro colorido com a cor vermelha, largura 60 e comprimento 30.

```python
#Este é o exemplo para criar um quadro colorido.
from PIL import Image
img = Image.new('RGB', (60, 30), 'red')
img.save('pil_red.png')
```
![alt text](../../media/whileloopbefore.png "imagem mostrando o primeiro exemplo da atividade 1")

## Crie seu próprio quadro colorido!

Escolha sua cor favorita e faça um quadro colorido para brincar! Aqui estão alguns exemplos de cores que você pode escolher, mas você também pode escolher sua própria cor.

<img src="../../media/Color-chart.png" width=30%>

<!-- Para acessibilidade, use este rótulo HTML -->
<label for="colorpicker">Você pode usar o seletor de cores para escolher uma cor:</label>
<input type="color" id="colorpicker">

{{% notice warning %}}
Para ver sua imagem, clique no canto superior esquerdo (que diz 'Arquivos') e, a seguir, clique no arquivo de imagem para ver o resultado.
<div style="width:100%">
<table>
<td>
<img src="../../media/open-file1.png" width=100%>
</td>
<td>
<img src="../../media/open-file2.png" width=100%>
</td>
</table>
</div>
{{% /notice %}}

<a class="my-2 mx-4 btn btn-info" href="https://replit.com/@nuevofoundation/Python-Pixel-Activity1" target="_blank">Iniciar Replit</a>
90 changes: 90 additions & 0 deletions content/brazilian-portuguese/python-pixel/Activities/Activity-2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
---
title: "Activity 2: Modify your color board"
date: 2020-07-11T00:00:00Z
prereq: "Python: Fundamentos, manipulação de imagens em Python: abrir uma imagem, Python: cores e pixels"
difficulty: "Intermediário"
weight: 2
draft: false
---

## Exemplo um: Faça uma diagonal

```python
#Isso cria o quadro colorido original.
from PIL import Image
img = Image.new('RGB', (60, 30), 'red')
img.save('pil_red.png')
#Isso usa um nested while loop para alterar a imagem.
x = 0
y = 0
while x < 10:
while y < 20:
img.putpixel( (x,y), (0, 0, 0))
x += 1
y += 1
img.save('pil_red.png')
```

Esta é a imagem antes de adicionar a diagonal.
![alt text](../../media/whileloopbefore.png "imagem mostrando o primeiro exemplo do loop while")

Esta é a imagem depois de adicionar a diagonal.
![alt text](../../media/whileloopafter.png "imagem mostrando o primeiro exemplo do loop while")

## Exemplo dois: Faça um retângulo.

```python
#Isso cria o quadro colorido original.
from PIL import Image
img = Image.new('RGB', (60, 30), 'red')
img.save('pil_red.png')
#Isso usa nested for loop para alterar a imagem.
for x in range(10, 30):
for y in range(5, 25):
img.putpixel( (x,y), (0, 0, 0))
img.save('pil_redmodified.png')
```

Esta é a imagem antes de adicionar o retângulo.
![alt text](../../media/whileloopbefore.png "imagem mostrando o primeiro exemplo do loop for")

Esta é a imagem depois de adicionar o retângulo.
![alt text](../../media/forloopafter.png "imagem mostrando o primeiro exemplo do loop for")

## Modificando seu próprio quadro colorido!

Aqui estão dois modelos para auxiliar nas modificações do seu quadro colorido.

#### Modelo Um: Adicionando uma linha

```python
# Modelo para adicionar uma linha
initial_position_x = 0 #faça a alteração aqui
initial_position_y = 0 #faça a alteração aqui
width = 0 #faça a alteração aqui
height = 0 #faça a alteração aqui
color = (0,0,0) #faça a alteração aqui
while initial_position_x < width:
while initial_position_y < height:
img.putpixel( (x,y), color)
initial_position_x += 1
initial_position_y += 1
img.save('pixel-activity2.png')
```

#### Modelo dois: adicionando um retângulo

```python
# Modelo para adicionar um retângulo
initial_position_x = 0 #faça a alteração aqui
initial_position_y = 0 #faça a alteração aqui
width = 0 #faça a alteração aqui
height = 0 #faça a alteração aqui
color = (0,0,0) #faça a alteração aqui
for x in range(initial_position_x, width+initial_position_x):
for y in range(initial_position_y, height+initial_position_y):
img.putpixel( (x,y), color)
img.save('pixel-activity2.png')
```

<a class="my-2 mx-4 btn btn-info" href="https://replit.com/@nuevofoundation/Python-Pixel-Activity2" target="_blank">Iniciar Replit</a>
10 changes: 10 additions & 0 deletions content/brazilian-portuguese/python-pixel/Activities/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
title: "Python: Atividades de pixel"
icon: "fab fa-python"
draft: false
weight: 3
---
Nesta seção, utilizaremos o que aprendemos para nos divertir com pixels e imagens!

## Atividades de pixel
{{% children /%}}
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
title: "Activity 10: Making a meme!"
date: 2020-02-10T13:24:17-07:00
draft: false
weight: 10
prereq: "Python: Fundamentos, manipulação de imagens em Python: abrir uma imagem, Python: cores e pixels"
difficulty: "Intermediário"
---

Outra coisa que podemos fazer para aprimorar nossa imagem é adicionar texto. Podemos fazer isso utilizando o módulo `Pillow ImageDraw`. Vamos importar isso no topo do nosso arquivo junto com nossas outras instruções de importação.

```python
from PIL import Image
from PIL import ImageFilter
from PIL import ImageDraw
```

Para nos permitir adicionar texto, devemos redesenhar a mesma imagem que usamos anteriormente. Vamos fazer isso usando a função `draw()`, que recebe um objeto de imagem. Depois que a imagem for desenhada, podemos adicionar texto a ela usando o método `text()` para definir o texto da imagem. O texto é desenhado com base nas coordenadas fornecidas. A função recebe dois parâmetros obrigatórios: as coordenadas xy e o texto necessário.

Por exemplo:

```python
drawnImage = ImageDraw.Draw(img)
drawnImage.text((200,20), "When you realize you learned python in an hour.")
drawnImage.save("myCatWithText.jpg")
```


My image now looks like this:
<img src="../../media/meme.png" alt="gato preto e branco desfocado de cabeça para baixo com um texto que diz “quando você perceber, aprendeu python em uma hora”.`" width=50%>

### Desafio - Alterar a fonte
Você pode ver que o texto na imagem criada acima está em uma fonte pequena e padrão. Existem outros parâmetros dentro do método `text()` que você pode usar. Dê uma olhada na [documentação](https://pillow.readthedocs.io/en/stable/reference/ImageDraw.html#PIL.ImageDraw.PIL.ImageDraw.ImageDraw.text) e veja se você pode alterar a fonte e o tamanho da fonte, bem como a cor do texto!

{{% notice note %}}

Isso exigirá o download de um .ttf (também conhecido como arquivo de fonte) on-line! Peça ajuda se tiver alguma dúvida.

{{% /notice %}}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
title: "Activity 11: Challenge: Make your own image"
prereq: "Python: Fundamentos, manipulação de imagens em Python: abrir uma imagem, Python: cores e pixels"
difficulty: "Intermediário"
date: 2020-09-08T00:00:00Z
weight: 11
draft: false
---

Nesta seção, usaremos o que você aprendeu até agora para criar e alterar sua própria imagem! Nesta seção, você pode fazer qualquer combinação de quadros de cores básicos, elementos de desenho, filtros, recortar, inverter, alterar cores ou texto.

### Desafio - Faça sua própria imagem

Na reprodução a seguir, fornecemos algumas imagens com as quais você pode brincar. Você também pode adicionar suas próprias imagens.

{{% notice warning %}}
Para ver sua imagem, clique no canto superior esquerdo (que diz 'Arquivos') e, a seguir, clique no arquivo de imagem para ver o resultado.
{{% /notice %}}

<a class="my-2 mx-4 btn btn-info" href="https://replit.com/@nuevofoundation/Python-Pixel-Activity10" target="_blank">Iniciar Replit</a>
47 changes: 47 additions & 0 deletions content/brazilian-portuguese/python-pixel/Activities/activity-3.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
---
title: "Atividade 3: Desafio: Projetar novos elementos"
prereq: "Python: Fundamentos, manipulação de imagens em Python: abrir uma imagem, Python: cores e pixels"
difficulty: "Intermediário"
date: 2020-09-08T00:00:00Z
weight: 3
draft: false
---

Usando loops, você pode criar seus próprios elementos no quadro colorido. Você pode criar seu próprio logotipo ou qualquer coisa que desejar neste quadro colorido. Aqui está um exemplo que fornecemos para você.


### Exemplo: faça um N.

```python
#Isso cria o quadro colorido original.
from PIL import Image
img = Image.new('RGB', (60, 30), 'white')

#Isso usa loop while aninhado para alterar o quadro colorido.
#Linha vertical esquerda
for x in range(10, 15):
for y in range(5, 25):
img.putpixel( (x,y), (0, 0, 0))

#Linha vertical direita
for x in range(30, 35):
for y in range(5, 25):
img.putpixel( (x,y), (0, 0, 0))

#Linha diagonal central
for y in range(5, 25):
for x in range(10+(y-5), 15+(y-5)):
img.putpixel( (x,y), (255, 211, 0))
img.save('pixel-activity3.png')
```
saída:
![alt text](../../media/Activity3_ex.png "imagem mostrando exemplo da atividade3")


### Projete seu próprio elemento!

{{% notice tip %}}
Na verdade, você pode criar algumas letras fáceis, como H, K, T e etc. Você pode alterar a cor de uma determinada parte dessas letras para torná-las mais bonitas.
{{% /notice %}}

<a class="my-2 mx-4 btn btn-info" href="https://replit.com/@nuevofoundation/Python-Pixel-Activity3" target="_blank">Iniciar Replit</a>
57 changes: 57 additions & 0 deletions content/brazilian-portuguese/python-pixel/Activities/activity-4.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
---
title: "Atividade 4: Criar Filtro Básico"
date: 2020-09-08T00:00:00Z
prereq: "Python: Fundamentos, manipulação de imagens em Python: abrir uma imagem, Python: cores e pixels"
difficulty: "Intermediário"
weight: 4
draft: false
---

Agora que entendemos mais sobre pixels e imagens, podemos começar a aprender como criar seu próprio filtro na imagem. Vejamos alguns exemplos de como criar um filtro básico em sua imagem.

### Exemplo de filtro azul

<img src="../../media/cat.png" width=50%>
Queremos adicionar um filtro azul no gato fofo acima. Vamos ver como conseguir isso.

```python
# Precisamos importar o pacote PIL para permitir a manipulação de pixels.
from PIL import Image

# Abra a imagem do gato
img = Image.open("cat.png")

# Vamos adicionar o filtro azul
for i in range(img.size[0]): # Para cada coluna
for j in range(img.size[1]): # Para cada linha
color = img.getpixel( (i,j) )
img.putpixel((i,j),(0, 0, color[2])) # Defina a cor de acordo

#Salve o gato após filtrar
img.save("Mycat.png")
```

Uau! Este é o nosso gato depois do filtro azul.
<img src="../../media/bluefiltercat.png" width=50%>

{{% notice tip %}}
Como isso funcionou? Vejamos o circuito:

```python
for i in range(img.size[0]): # Para cada coluna
for j in range(img.size[1]): # Para cada linha
color = img.getpixel( (i,j) ) # Obtenha o pixel atual
img.putpixel((i,j),(0, 0, color[2])) # Defina a cor de acordo
```

Começamos percorrendo a imagem, por cada coluna e cada linha, para obter cada pixel. Em seguida, obtém o valor da cor atual do pixel. Para definir um filtro azul para esse pixel, tudo o que fazemos é definir os valores RGB 'Vermelho' e 'Verde' como 0. Portanto, apenas os valores 'Azul' permanecem!

{{% /notice %}}


### Desafio - Crie seu próprio filtro

Seguindo o exemplo acima, tente criar seus próprios filtros com cores diferentes.
<a class="my-2 mx-4 btn btn-info" href="https://replit.com/@nuevofoundation/Python-Pixel-Activity4" target="_blank">Iniciar Replit</a>

Finalmente, pense e tente criar um filtro cinza. Falaremos sobre como criar um filtro cinza na próxima seção.
Loading