top of page
  • Immagine del redattoreGabriele Sirtori

Come dividere le immagini in quadrati 1:1 per creare caroselli di Instagram usando python.

I caroselli di Instagram sono molto belli e - secondo alcune statistiche - hanno anche i maggiori tassi di engagement tra le differenti tipologie di post della piattaforma.


Ne creo molto spesso per la pagina instagram di Colnago.

Vedi l'esempio qui sotto:


Come? Creo l'immagine completa su Canva, nella forma di una lunga immagine con una proporzione di 3:1, 4:1, 5:1 o anche (in un caso) 7:1. Successivamente la taglio in parti quadrate 1:1.


Come faccio a tagliarla in perfetti quadrati 1:1?


Ci sono diversi metodi, alcuni dei quali richiedono tempo o prevedono rischi

Per risolvere questo problema, ho scritto un veloce script di python, utilizzando le librerie standard di questo linguaggio.



Metodi esistenti

Puoi creare caroselli e dividere immagini....

  1. Usando un tool online come Grid Maker by MySocialBoutique.co

  2. Usando Canva stesso

  3. Ritagliando le immagini utilizzando i programmi di Adobe (Illustrator or Photoshop)


Sono tutte ottime soluzioni, ma...

  1. Utilizzando un sito web hai dei limiti di caricamento e le immagini spesso vengono restituite compresse o di qualità inferiore.

  2. Canva spesso porta a imprecisioni ed errori

  3. Utilizzando i programmi di Adobe hai il massimo che ti serve, ma... hai la licenza di questi programmi prima di tutto? Sono super costosi.


Ho quindi scritto il seguente script in python per dividere le immagini in quadrati e creare caroselli. Lo script utilizza librerie standard di python e lo puoi usare su tutti i principali ambienti di sviluppo, da Jupyter Notebook a Colab, passando per Visual Studio Code e - ovviamente - il prompt.


Il mio script in python per dividere immagini e creare caroselli su instagram.

Eccolo:


#Add the image path
image_url = "C:/User/Desktop/pic_name.png"

#Import the "Image" Library from the PIL package
from PIL import Image

#Open the image and get its size
pic = Image.open(image_url)
h = pic.size[1]
w = pic.size[0]

#Crop it into as many squares as they fit
i = 0
while i < w//h:
    w0 = h*i
    w1 = h*(1+i)
    box = (w0, 0, w1, h)
    region = pic.crop(box)
    
    #Save the files such as this: "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 directory in cui stai facendo girare il programma.


Condividilo se l'hai trovato utile :)


Gabriele




2.514 visualizzazioni0 commenti

Post recenti

Mostra tutti

Comments


Post: Blog2 Post
bottom of page