Advertisement
Guest User

Untitled

a guest
Dec 11th, 2019
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.76 KB | None | 0 0
  1. ## adicionando uma logo em todas as imagens
  2.  
  3. ## Em um nível alto, eis o que o programa deve fazer:
  4. # - Carregue a imagem do logotipo.
  5. # - Passe por todos os arquivos .png e .jpg no diretório de trabalho.
  6. # - Verifique se a imagem é maior ou maior que 300 pixels.
  7. # - Nesse caso, reduza a largura ou a altura (o que for maior)
  8. #   para 300 pixels e reduza a escala da outra dimensão proporcionalmente.
  9. # - Cole a imagem do logotipo no canto.
  10. # - Salve as imagens alteradas em outra pasta.
  11.  
  12. ## Isso significa que o código precisará fazer o seguinte:
  13.  
  14. # - Abra o catlogo.png arquivo como uma imagem do objeto.
  15. # - Loop nas seqüências retornadas de os.listdir ('.') .
  16. # - Obtenha a largura e a altura da imagem no atributo size .
  17. # - Calcule a nova largura e altura da imagem redimensionada.
  18. # - Chame o método resize () para redimensionar a imagem.
  19. # - Chame o método paste () para colar o logotipo.
  20. # - Chame o método save () para salvar as alterações,
  21. #   usando o nome do arquivo original.
  22.  
  23. import os
  24. from PIL import Image
  25.  
  26. BASE_DIR = "/home/flakesrc/Imagens/"
  27. SQUARE_FIT_SIZE = 300
  28. LOGO_FILENAME = BASE_DIR + "logo.png"
  29.  
  30. logoIm = Image.open(LOGO_FILENAME)
  31. logoWidth, logoHeight = logoIm.size
  32.  
  33. # exist_ok como True impede de levantar um erro
  34. # se o diretório já existir
  35. os.makedirs(BASE_DIR + "withLogo", exist_ok=True)
  36.  
  37. # itera todos os arquivos dentro
  38. # do retorno da lista com os arquivos
  39. # dentro do diretório base
  40. for filename in os.listdir(BASE_DIR):
  41.     # não faz nada se o arquivo for imagem
  42.     # ou se o arquivo for a propria logo
  43.     if (
  44.         not (filename.endswith(".png") or filename.endswith(".jpg"))
  45.         or filename == LOGO_FILENAME
  46.     ):
  47.         continue
  48.  
  49.     im = Image.open(BASE_DIR + filename)
  50.     width, height = im.size
  51.     # verifica se a imagem aberta precisa
  52.     # ser redimensionada para que a logo caiba na imagem
  53.     if width > SQUARE_FIT_SIZE and height > SQUARE_FIT_SIZE:
  54.         # se a imagem tiver alguma proporção maior
  55.         # do que a imagem do logo, irá redimensionar
  56.         # a largura ou altura, e fará um calculo
  57.         # para que seja redimensionado mas mantenha
  58.         # a nova largura ou altura na mesma proporção
  59.         if width > height:
  60.             height = int((SQUARE_FIT_SIZE / width) * height)
  61.             width = SQUARE_FIT_SIZE
  62.         else:
  63.             width = int((SQUARE_FIT_SIZE / height) * width)
  64.             height = SQUARE_FIT_SIZE
  65.  
  66.             # redimensiona a imagem
  67.             print(f"Resizing {BASE_DIR + filename}...")
  68.             im = im.resize((width, height))
  69.  
  70.         im.paste(logoIm, (0, 0), logoIm)
  71.         new_file_path = f"{BASE_DIR}withLogo/{filename}"
  72.         print(f"Saving new image on {new_file_path}...")
  73.         im.save(new_file_path)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement