Créez une image factice avec Python + PIL.

Avec Python + PIL, j'ai créé un script qui crée une image factice (appelée image filaire) utilisée pour la mise en page d'une page Web à la fois.

Saveur vaincue. Python utilise 2.7.

image-wire-frame-box.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
Créer une image en fil de fer
'''

import Image
import ImageDraw
import ImageFont
import sys


def make_image(screen, prefix, extension, pen_color, bg_color):
    """
Créer un fichier image
    """

    #Le chemin de la police est différent pour chaque forme plate, alors prenez cela en considération (en fait, battez-le)
    if sys.platform == "darwin":
        #Pour OSX
        #La police japonaise ne fonctionnait pas
        #FONTPATH = '/Library/Fonts/Osaka.ttf'
        FONTPATH = '/Library/Fonts/Verdana.ttf'
    elif sys.platform == "linux2":
        #Pour Linux
        FONTPATH = '/usr/share/fonts/truetype/fonts-japanese-gothic.ttf'
    else:
        #Autre que cela, il est jugé comme Windows (défaite)
        # FONTPATH = 'hgrme.ttc'
        FONTPATH = 'C:\WINDOWS\Fonts\MSGOTHIC.ttc'

    #Spécifiez la police
    font = ImageFont.truetype(FONTPATH, 24, encoding='utf-8')

    img = Image.new('RGB', screen, bg_color)
    x, y = img.size
    u = x - 1
    v = y - 1
    draw = ImageDraw.Draw(img)

    draw.line((0, 0, u, 0), pen_color)
    draw.line((0, 0, u, v), pen_color)
    draw.line((0, 0, 0, v), pen_color)
    draw.line((u, 0, 0, v), pen_color)
    draw.line((u, 0, u, v), pen_color)
    draw.line((0, v, u, v), pen_color)

    #Mettre du texte dans l'image (défaite)
    if x > 63 and y > 24:
        draw.text((2, (y - 24) / 2), str(x) + "x" + str(y),
            font=font, fill=pen_color)

    savefile = prefix + str(x) + "x" + str(y) + extension
    img.save(savefile)

if __name__ == '__main__':
    #Taille de l'image
    screens = (
        (16, 16),      # favicon
        (32, 32),      # favicon
        (24, 24),      # windows icon
        (48, 48),      # windows icon / avatar
        (96, 96),      # windows icon / avatar
        (64, 64),      # mac icon / avatar
        (128, 128),    # mac icon / avatar
        (100, 100),    # icon / avatar
        (150, 150),    # icon / avatar
        (256, 256),    # icon / avatar ----
        (320, 240),    # QVGA
        (240, 320),    # QVGA
        (640, 480),    # VGA
        (480, 640),    #VGA (vertical)
        (800, 600),    # SVGA
        (600, 800),    #SVGA (vertical)
        (1024, 768),   # XGA
        (768, 1024),   #XGA (vertical)
        (1280, 960),   # Quad-VGA
        (960, 1280),   # Quad-VGA (vertical)
        (1600, 1200),  # UXGA
        (1200, 1600),  #UXGA (vertical)
        (1280, 720),   # HDTV 720p
        (720, 1280),   #HDTV 720p (vertical)
        (1920, 1080),  # HDTV 1080p
        (1080, 1920),  #HDTV 1080p (vertical)----
        (88, 31),      #Micro-barre IMU Micro Bar
        (120, 60),     #Bouton IMU 2 Bouton 2
        (160, 600),    #IMU Wide Skyscraper Wide Skyscraper
        (300, 600),    #Demi-page et demi-page IMU
        (180, 150),    #Rectangle IMU Rectangle (petit)
        (300, 250),    #Rectangle moyen IMU Rectangle (milieu)
        (728, 90),     #Grande bannière de classement IMU
        (120, 90),     #Bouton IMU (Supprimer) 1 Bouton 1
        (120, 240),    #Bannière verticale IMU (supprimée) Bannière verticale
        (120, 600),    #Gratte-ciel IMU (supprimé) Skyscraper
        (125, 125),    #Bouton carré IMU (supprimé) Bouton carré, bouton
        (234, 60),     #IMU (supprimé) Demi-bannière Demi-bannière
        (240, 400),    #Rectangle vertical IMU (supprimé) Rectangle vertical
        (250, 250),    #IMU (supprimé) Square Pop-Up Square
        (300, 100),    #IMU (supprimé) 3:1 Rectangle 3:1 rectangle
        (336, 280),    #IMU (supprimé) Grand rectangle Grand rectangle, Rectangle (grand)
        (468, 60),     #Bannière complète IMU (supprimée), bannière complète
        (720, 300),    #IMU (supprimé) Pop-Sous pop sous
        (200, 200),    #Google Square (petit)
        (970, 90),     #Google Large Big Banner, Big Banner (Large)
        (320, 50),     #Google Mobile Big Banner
        (320, 100),    #Bannière Google Mobile (grande)
        (240, 400),    #Google "Rectangle (vertical)" Russie
        (980, 120),    #Google "Panorama" Suède et Finlande
        (250, 360),    #Google "Triple Wide Screen" Suède
        (930, 180),    #Google "Top Banner" Danemark
        (580, 400),    #Google "Netboard" Norvège
        (750, 100),    #Google "Billboard" Pologne
        (750, 200),    #Google "Double Billboard" Pologne
        (750, 300),    #Google "Triple Billboard" Pologne
        (170, 40),     #bannière Détails inconnus
        (180, 70),     #bannière Détails inconnus
        (200, 40),     #banner Même la taille de la bannière que l'on trouve souvent dans les systèmes de CG japonais
        (400, 40)      #banner Même la taille de la bannière qui est courante au Japon
        )

    #Spécifiez le préfixe
    prefix = "wf-"

    #Spécifiez l'extension de fichier
    #extension = ".png "
    extension = ".jpg "

    #Spécifiez la couleur du dessin (RVB)
    pen_color = (0x00, 0x00, 0xdd)

    #Spécifiez la couleur d'arrière-plan (RVB) de l'image
    bg_color = (0xdd, 0xdd, 0xdd)

    for screen in screens:
        print "size: %d,%d" % (screen[0], screen[1])
        make_image(screen, prefix, extension, pen_color, bg_color)
#EOF

↓ Une image comme celle-ci est créée en douceur. wf-300x600.jpg

Recommended Posts

Créez une image factice avec Python + PIL.
Créer un répertoire avec python
Créez un environnement virtuel avec Python!
Créer un décorateur de fonction Python avec Class
[Python] Créez un environnement virtuel avec Anaconda
Créons un groupe gratuit avec Python
Créer un compteur de fréquence de mots avec Python 3.4
Créer un module Python
Traitement d'image avec Python
Créer un environnement Python
Traitement d'image avec PIL
Créer un cadre avec un arrière-plan transparent avec tkinter [Python]
Créer un papier peint à pois avec la bibliothèque d'images Python
Créer un LINE BOT avec Minette pour Python
Créer un environnement virtuel avec conda avec Python
Créer une page qui se charge indéfiniment avec python
[Note] Créez une classe de fuseau horaire sur une ligne avec python
Vous pouvez facilement créer une interface graphique même avec Python
Créer un environnement de construction python3 avec Sublime Text3
Créer une barre de couleurs avec Python + Qt (PySide)
Créer une image avec des caractères avec python (japonais)
Étapes pour créer un bot Twitter avec Python
Créer un arbre de décision à partir de 0 avec Python (1. Présentation)
Créer une nouvelle page en confluence avec Python
Créer un widget avec une couleur spécifiée avec Python + Qt (PySide)
Créer un fichier au format Photoshop (.psd) avec python
Facile à créer une application console Python avec Click
Traitement d'image avec Python (partie 2)
Créer un plugin Wox (Python)
Traitement d'image avec PIL (Pillow)
Créer une fonction en Python
Créer un dictionnaire en Python
Édition d'image avec python OpenCV
Créer un gif 3D avec python3
Créez un fichier image à l'aide de PIL (Python Imaging Library).
[Python] Générer ValueObject avec un constructeur complet à l'aide de classes de données
Créer une page d'accueil avec django
Pourquoi ne pas créer facilement une table élégante avec Python?
Créez un environnement de développement python avec vagrant + ansible + fabric
Tri des fichiers image avec Python (2)
Tri des fichiers image avec Python (3)
Créer une visionneuse d'images avec Tkinter
Traitement d'image avec Python (partie 1)
Tweet avec image en Python
Tri des fichiers image avec Python
Créer un tableau numpy python
Créer un fichier de données factice
Faites une loterie avec Python
Traitement d'image avec Python (3)
Créer une couche pour AWS Lambda Python dans Docker
[python] Créez un tableau de dates avec des incréments arbitraires avec np.arange
Créez diverses vidéos Photoshop avec Python + OpenCV ② Créez une image fixe Photoshop
[Python] Comment créer un histogramme bidimensionnel avec Matplotlib
[Python] Créez un fichier de distribution pour le programme Tkinter avec cx_Freeze
Créez un faux serveur Minecraft en Python avec Quarry
Créer un fichier CAO 2D ".dxf" avec python [ezdxf]
[Python] Traitement d'image avec scicit-image
Créer une image à plage dynamique élevée (HDR) avec OpenCV et Python (Mertens, Robertson, Debevec)