Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ## adicionando uma logo em todas as imagens
- ## Em um nível alto, eis o que o programa deve fazer:
- # - Carregue a imagem do logotipo.
- # - Passe por todos os arquivos .png e .jpg no diretório de trabalho.
- # - Verifique se a imagem é maior ou maior que 300 pixels.
- # - Nesse caso, reduza a largura ou a altura (o que for maior)
- # para 300 pixels e reduza a escala da outra dimensão proporcionalmente.
- # - Cole a imagem do logotipo no canto.
- # - Salve as imagens alteradas em outra pasta.
- ## Isso significa que o código precisará fazer o seguinte:
- # - Abra o catlogo.png arquivo como uma imagem do objeto.
- # - Loop nas seqüências retornadas de os.listdir ('.') .
- # - Obtenha a largura e a altura da imagem no atributo size .
- # - Calcule a nova largura e altura da imagem redimensionada.
- # - Chame o método resize () para redimensionar a imagem.
- # - Chame o método paste () para colar o logotipo.
- # - Chame o método save () para salvar as alterações,
- # usando o nome do arquivo original.
- import os
- from PIL import Image
- BASE_DIR = "/home/flakesrc/Imagens/"
- SQUARE_FIT_SIZE = 300
- LOGO_FILENAME = BASE_DIR + "logo.png"
- logoIm = Image.open(LOGO_FILENAME)
- logoWidth, logoHeight = logoIm.size
- # exist_ok como True impede de levantar um erro
- # se o diretório já existir
- os.makedirs(BASE_DIR + "withLogo", exist_ok=True)
- # itera todos os arquivos dentro
- # do retorno da lista com os arquivos
- # dentro do diretório base
- for filename in os.listdir(BASE_DIR):
- # não faz nada se o arquivo for imagem
- # ou se o arquivo for a propria logo
- if (
- not (filename.endswith(".png") or filename.endswith(".jpg"))
- or filename == LOGO_FILENAME
- ):
- continue
- im = Image.open(BASE_DIR + filename)
- width, height = im.size
- # verifica se a imagem aberta precisa
- # ser redimensionada para que a logo caiba na imagem
- if width > SQUARE_FIT_SIZE and height > SQUARE_FIT_SIZE:
- # se a imagem tiver alguma proporção maior
- # do que a imagem do logo, irá redimensionar
- # a largura ou altura, e fará um calculo
- # para que seja redimensionado mas mantenha
- # a nova largura ou altura na mesma proporção
- if width > height:
- height = int((SQUARE_FIT_SIZE / width) * height)
- width = SQUARE_FIT_SIZE
- else:
- width = int((SQUARE_FIT_SIZE / height) * width)
- height = SQUARE_FIT_SIZE
- # redimensiona a imagem
- print(f"Resizing {BASE_DIR + filename}...")
- im = im.resize((width, height))
- im.paste(logoIm, (0, 0), logoIm)
- new_file_path = f"{BASE_DIR}withLogo/{filename}"
- print(f"Saving new image on {new_file_path}...")
- im.save(new_file_path)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement