Python - Necesito ayuda en algunas partes de mi proyecto de python

 
Vista:
sin imagen de perfil

Necesito ayuda en algunas partes de mi proyecto de python

Publicado por Leo (2 intervenciones) el 25/07/2021 06:02:36
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
def dividir_imagen(imagen, n):
    #cargar imagen
    fortnite = Image.open(imagen, 'r')
    #solicitar el tamaño
    ancho, alto = fortnite.size
    anchoPedazo = ancho // n
 
    altoPedazo = alto // n
    imagenPiezas = []
    for x in range(n):
        for y in range(n):
            pedazo_dimension =(anchoPedazo * y, altoPedazo * x, anchoPedazo* (y + 1), altoPedazo *( x + 2))
            pedazo = fortnite.crop(pedazo_dimension)
            imagenPiezas.append(pedazo)
 
    return imagenPiezas='editor_code'>

El problema qe tengo es en la parte donde me piden unir los pedazos de la imagen con una tupla
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Necesito ayuda en algunas partes de mi proyecto de python

Publicado por tincopasan (1082 intervenciones) el 25/07/2021 06:51:18
no entiendo, ese código no une, solo corta y devuelve una lista. ¿en que parte de ahí tenés que unir los pedazos de la imagen con una tupla ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
sin imagen de perfil

Necesito ayuda en algunas partes de mi proyecto de python

Publicado por Leo (2 intervenciones) el 25/07/2021 07:31:39
en otra función tengo que unir los pedazos con una tupla (3*3) para que pueda mostrar la imagen y al tener con la tupla unida poder desordenar la imagen, o como podrida desordenar una imagen?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Necesito ayuda en algunas partes de mi proyecto de python

Publicado por tincopasan (1082 intervenciones) el 25/07/2021 12:27:05
a ver, supongamos, ¿a una imagen la querés dividir en x cantidad de partes y después mezclar esas imagenes para formar otra que esté como si fuese un mosaico de imagnes?¿eso es desordenar? Si es así no se puede solo con las tuplas que estás guardando en la lista, también hay que guardar la imagen cortada, para después unir esas imagenes.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar

Necesito ayuda en algunas partes de mi proyecto de python

Publicado por Leo (1 intervención) el 25/07/2021 15:06:52
si, tengoque dividir la imagen y mostrar cada parte en un mosaico en desorden, como podria hacerlo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Necesito ayuda en algunas partes de mi proyecto de python

Publicado por tincopasan (1082 intervenciones) el 25/07/2021 23:00:58
Bueno eso ya no es "necesito ayuda en algunas partes de mi proyecto" es más bien, hagan mi proyecto. Como evidentemente no voy a realizar todo por vos, si te mostraré una de las tantas formas que hay de encararlo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#-*- coding: utf  -8 -*-
from PIL import Image
import random
def cortar(archivo,numero):
    lista=[]
    im =Image.open(archivo)
    w,h = im.size
    unidad = h//numero
    for n in range(numero):
        im1= im.crop((0,unidad*n,w,unidad*(n+1)))
        lista.append(f"{archivo[:-4]}{str(n+1)}.jpg")
        im1.save(f"{archivo[:-4]}{str(n+1)}.jpg")
    return lista,w,h
 
def  desordenada(lista,numero,w,h):
    nueva_im = Image.new("RGB", (w,h))
    random.shuffle(lista)
    donde = 0
    for x in lista:
        su= Image.open(x)
        an,al=su.size
        nueva_im.paste(su,(0,donde))
        donde+=al
    nueva_im.save("desorden.jpg")
 
lista,w,h = cortar("archivo.jpg",4)
desordenada(lista,4,w,h)

Está más que claro que muchas cosas a mejorar, por ejemplo estoy nombrando el archivo en el script, se podría con un input por parte del usuario, el corte es solo horizontal, también se podría vertical, o ambos, la mezcla la hago al azar y puede no mezclarse tanto, habría que mejorar el método para que no haya repetición de índices, el archivo final también pordría elegirlo el usuario, borrar los archivos inncesarios al final, manejo de errores, etc.
pero el ejmplo funciona de forma simple y orientativa.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar