Hur ändrar man storleken på en animerad GIF med Pillow?

Nov 06, 2025

Lämna ett meddelande

Hej där! Om du gillar att arbeta med animerade GIF-filer och du använder Python, har du förmodligen stött på Pillow-biblioteket. Jag är en leverantör av Pillow-produkter och jag är här för att leda dig genom processen att ändra storlek på en animerad GIF med Pillow. Det är en ganska praktisk färdighet, oavsett om du är en utvecklare, en designer eller bara någon som älskar att leka med bilder.

Varför ändra storlek på en animerad GIF?

Innan vi dyker in i hur man gör, låt oss prata om varför du kanske vill ändra storlek på en animerad GIF i första hand. Det finns några anledningar. Kanske arbetar du på en webbplats och du behöver optimera GIF-storleken för att din sida ska laddas snabbare. Eller så kanske du skapar ett inlägg på sociala medier och du måste passa GIF:en inom en specifik dimension. Oavsett anledningen kan storleksändring av en animerad GIF vara super användbar.

Förutsättningar

Först och främst måste du ha kudde installerad. Om du inte redan har gjort det kan du installera den med pip. Öppna bara din terminal och kör följande kommando:

pip installera kudde

När du har installerat Pillow är du redo att börja ändra storlek på dessa GIF-filer.

Processen

Låt oss dela upp processen att ändra storlek på en animerad GIF med hjälp av Pillow i några enkla steg.

Steg 1: Importera de nödvändiga biblioteken

Det första du behöver göra är att importeraBildmodul från Pillow-biblioteket. Så här kan du göra det:

från PIL import bild

Steg 2: Öppna den animerade GIF-filen

Därefter måste du öppna den animerade GIF-filen. Du kan göra detta med hjälp avImage.open()metod. Här är ett exempel:

gif = Image.open('din_animerade_gif.gif')

Ersätta'din_animerade_gif.gif'med den faktiska sökvägen till din GIF-fil.

Steg 3: Definiera den nya storleken

Nu måste du bestämma dig för den nya storleken för din GIF. Du kan göra detta genom att ange bredd och höjd i pixlar. Om du till exempel vill ändra storlek på din GIF till 300 pixlar bred och 200 pixlar hög, kan du definiera den nya storleken så här:

ny_storlek = (300, 200)

Steg 4: Ändra storlek på varje bildruta

En animerad GIF består av flera bildrutor. För att ändra storlek på hela GIF-filen måste du ändra storlek på varje bildruta individuellt. Du kan göra detta med hjälp av en slinga. Här är ett exempel:

Household PillowMemory Foam Pillow

frames = [] för ram i intervallet(0, gif.n_frames): gif.seek(frame) resized_frame = gif.resize(new_size, Image.LANCZOS) frames.append(resized_frame)

I den här koden använder vi enförloop för att iterera genom varje bildruta i GIF. Vi använder dåsöka()metod för att flytta till den aktuella ramen, ochändra storlek()metod för att ändra storlek på ramen till den nya storleken. Slutligen lägger vi till den ändrade storleken på ramen tillramarlista.

Steg 5: Spara GIF-filen med ändrad storlek

När du har ändrat storlek på alla ramar måste du spara den ändrade GIF-filen. Du kan göra detta med hjälp avspara()metod. Här är ett exempel:

frames[0].save('resized_animated_gif.gif', save_all=True, append_images=frames[1:], duration=gif.info['duration'], loop=0)

I den här koden sparar vi den första bildrutan iramarlista som den nya GIF. Vi användersave_all=Santparameter för att indikera att vi vill spara alla ramar, ochappend_images=frames[1:]parameter för att lägga till de återstående bildrutorna till den första bildrutan. Vi använder ocksåduration=gif.info['duration']parameter för att ställa in varaktigheten för varje bildruta till samma som den ursprungliga GIF-filen, ochloop=0parametern för att indikera att vi vill att GIF ska gå i loop på obestämd tid.

Att sätta ihop allt

Här är den kompletta koden för att ändra storlek på en animerad GIF med Pillow:

från PIL importera bild # Öppna den animerade GIF gif = Image.open('din_animerade_gif.gif') # Definiera den nya storleken new_size = (300, 200) # Ändra storlek på varje bildruta ramar = [] för bildruta i intervallet(0, gif.n_frames): gif.seek(ram) resize.Zresframe, Image frames.append(resized_frame) # Spara de ändrade GIF-ramarna[0].save('resized_animated_gif.gif', save_all=True, append_images=frames[1:], duration=gif.info['duration'], loop=0)

Tips och tricks

  • Välj rätt omsamplingsfilter: När du ändrar storlek på en bild kan du välja olika omsamplingsfilter. DeImage.LANCZOSfilter är i allmänhet ett bra val för högkvalitativ storleksändring, men du kan experimentera med andra filter somImage.BILINEARellerImage.NEARESTför att se vilken som fungerar bäst för din GIF.
  • Optimera GIF-storleken: Om du ändrar storlek på GIF för att minska dess filstorlek kan du prova att användaoptimize=Santparameter när du sparar GIF. Detta tar bort all onödig metadata från GIF-filen och kan avsevärt minska dess filstorlek.

Relaterade kuddprodukter

Som kuddleverantör erbjuder jag ett brett utbud av produkter för att möta dina behov. Oavsett om du letar efter enMemory Foam Kuddeför en bekväm nattsömn eller enHushållskuddeför dagligt bruk, jag har dig täckt.

Kontakta oss för upphandling

Om du är intresserad av att köpa våra Kuddprodukter, vill vi gärna höra från dig. Oavsett om du är en återförsäljare som vill ha våra produkter i lager eller en individ som letar efter en kudde av hög kvalitet, så finns vi här för att hjälpa dig. Hör bara av dig till oss så startar vi upphandlingsdiskussionen.

Referenser

  • Kudddokumentation: https://pillow.readthedocs.io/en/stable/
  • Python Imaging Library Handbook: https://www.effbot.org/imagingbook/

Skicka förfrågan