Uno splitter di immagini 1:1 per i caroselli di Instagram (Python)

Uno splitter di immagini 1:1 per i caroselli di Instagram (Python)

I post a carosello continuo su Instagram sono belli e — secondo alcuni dati — hanno il tasso di engagement più alto tra i vari tipi di post che puoi pubblicare. Lo faccio spesso sulla pagina Instagram di Colnago.

Come? Creo un carosello su Canva come un’unica immagine con rapporto 3:1, 4:1, 5:1 o persino (una volta) 7:1, e poi la taglio in quadrati. Come la taglio in quadrati 1:1 perfetti? Ci sono molti metodi, e la maggior parte richiede molto tempo o comporta rischi.

Carousel example TOUR DE FRANCE Colnago

I metodi esistenti

Puoi creare caroselli e dividere immagini:

  • usando uno strumento online come Grid Maker di MySocialBoutique.co
  • usando Canva stesso
  • tagliandola con app come quelle di Adobe (Illustrator o Photoshop)

Vanno tutti bene, tranne che:

  • usando un sito esterno hai limiti sulle dimensioni dell’immagine, e il risultato è compresso / perde qualità
  • usare Canva è comodo ma porta spesso a errori
  • usare i programmi Adobe è la soluzione più professionale, ma… ci hai accesso? Costano tantissimo.

Per risolvere, ho creato il seguente script, che usa librerie Python standard.

Il mio script Python per dividere le immagini e creare caroselli Instagram

# Aggiungi il percorso dell'immagine
image_url = "C:/User/Desktop/pic_name.png"

# Importa la libreria "Image" dal pacchetto PIL
from PIL import Image

# Apri l'immagine e ricava le dimensioni
pic = Image.open(image_url)
h = pic.size[1]
w = pic.size[0]

# Ritagliala in tutti i quadrati che ci stanno
i = 0
while i < w // h:
    w0 = h * i
    w1 = h * (1 + i)
    box = (w0, 0, w1, h)
    region = pic.crop(box)

    # Salva i file così: "image_name_crop_1.png"
    file_name = image_url.split("/")[-1].split(".")[0] + "_crop_" + str(i + 1) + ".png"
    region.save(file_name)
    i += 1

print("done!")

Le immagini vengono salvate nella stessa cartella in cui esegui lo script. Condividilo se ti è stato utile :)