[PYTHON] J'ai écrit un script qui divise l'image en deux

introduction

J'étudiais Python à AtCoder. Au fur et à mesure que j'apprenais à l'écrire petit à petit, je voulais écrire un scénario pratique, alors j'ai décidé de faire ce dont j'avais besoin.

environnement

OS:Ubuntu 20.04LTS Langage: Python 3.8.2 La version de Pillow est 7.0.0.

Objectif / utilisation

Utilisez cette option lorsque vous souhaitez diviser une image longue horizontalement en deux verticalement. Utilisez-le lors de la lecture de documents diffusés sur votre smartphone.

code

imagehalf


import glob
from PIL import Image
import os

files = glob.iglob('/home/user/images/*.jpg')

for f in files:
    img = Image.open(f)
    x, y = img.size

    box = img.crop((0, 0, x//2, y))
    title, ext = os.path.splitext(f)
    box.save(title + 'half1' + ext, quality=75)

    box = img.crop((x//2+1, 0, x, y))
    title, ext = os.path.splitext(f)
    box.save(title + 'half2' + ext, quality=75)

    os.remove(f)

Description du code

Créez un répertoire appelé "images" sur votre répertoire personnel et utilisez-le pour votre travail. Détecte tous les fichiers avec l'extension .jpg stockés dans les images. En partant du coin supérieur gauche de l'image, obtenez les coordonnées intermédiaires dans la direction de l'axe x et divisez l'image en deux. Enregistrez le côté gauche de l'image divisé en deux en tant que «nom de fichier d'origine + moitié1 + extension». Enregistrez le côté droit de l'image divisé en deux en tant que «nom de fichier d'origine + moitié2 + extension». Supprimez l'image d'origine.

※Mise en garde Je pense que le fichier script fonctionnera s'il est placé au même niveau que le répertoire de travail et sur le répertoire personnel. Le fichier image à partir duquel il a été divisé sera supprimé, pas la corbeille. Il ne peut pas être relancé.

en conclusion

Comme il s'agit du premier script que j'ai créé, le style d'écriture et les paramètres d'environnement peuvent être incorrects. Si vous avez une façon d'écrire plus intelligente, veuillez le signaler. Veuillez pardonner la responsabilité de ce script.

Recommended Posts

J'ai écrit un script qui divise l'image en deux
Un mémo que j'ai écrit un tri rapide en Python
J'ai écrit un module PyPI qui étend le style de paramètre dans le module sqlite3 de Python
J'ai écrit un script pour relancer la montre gulp qui mourra bientôt
J'ai écrit un script pour obtenir un site populaire au Japon
J'ai écrit la file d'attente en Python
Script Python qui compare le contenu de deux répertoires
J'ai écrit un script Python qui exporte tous mes articles à l'aide de l'API Qiita v2
J'ai créé un programme qui résout la recherche d'erreur en quelques secondes
J'ai écrit une fonction pour charger le script d'extension Git en Python
J'ai écrit un script pour extraire les liens de pages Web en Python
J'ai écrit l'aile coulissante dans la création.
Écrivain AtCoder J'ai écrit un script qui regroupe les concours pour chaque écrivain
J'ai écrit un lecteur de corpus qui lit les résultats de l'analyse MeCab
J'ai écrit une classe en Python3 et Java
Programme pour rechercher la même image
J'ai écrit un modèle de conception dans l'édition Kotlin Prototype
J'ai écrit un script pour télécharger un plug-in WordPress
J'ai écrit un analyseur japonais en japonais en utilisant pyparsing.
J'ai créé un LINE BOT qui renvoie une image de riz terroriste en utilisant l'API Flickr
Notez que je comprends l'algorithme des moindres carrés. Et je l'ai écrit en Python.
J'ai écrit un modèle de conception dans l'édition Kotlin Factory
J'ai écrit un modèle de conception dans l'édition Kotlin Builder
J'ai écrit un modèle de conception dans l'édition Kotlin Singleton
J'ai écrit un modèle de conception dans l'édition Kotlin Adapter
J'ai fait un script pour mettre un extrait dans README.md
J'ai écrit un modèle de conception en kotlin, édité par Iterator
Essayez de charger l'image dans un thread séparé (OpenCV-Python)
Que contient cette variable (lorsque le script Python est en cours d'exécution)
Un mémo que j'ai touché au magasin de données avec python
J'ai écrit un modèle de conception dans l'édition de modèle kotlin
Notez que j'étais accro au script npm ne passant pas dans l'environnement de vérification
J'ai remplacé le livre de recettes Windows PowerShell par un script python.
J'ai écrit python en japonais
J'ai essayé l'algorithme de super résolution "PULSE" dans un environnement Windows
Mémo que je suis resté coincé dans l'introduction de Mezzanine
Un script Python qui enregistre une image de presse-papiers (GTK) dans un fichier.
Un script qui ouvre les URL écrites en CSV dans l'ordre et prend une capture d'écran en plein écran
J'ai écrit le fonctionnement de base de Seaborn dans Jupyter Lab
Créons un script qui s'enregistre avec Ideone.com en Python.
Remarques sur l'intégration du langage de script dans les scripts bash
Remarque 2 pour intégrer le langage de script dans un script bash
Des mots qui m'intéressaient en tant que débutant en programmation
Création d'un script Python prenant en charge l'API e-Stat (ver.2)
J'ai écrit un code qui dépasse le taux de récupération de 100% dans la prédiction des courses de chevaux en utilisant LightGBM (partie 2)
J'ai essayé "un programme qui supprime les déclarations en double en Python"
Traitez les fichiers du dossier dans l'ordre avec le script shell
J'ai fait une image ponctuelle de l'image d'Irasutoya. (partie 1)
Je l'ai écrit en langage Go pour comprendre le principe SOLID
Y a-t-il un biais dans les nombres qui apparaissent dans les nombres de Fibonacci?
J'ai écrit le fonctionnement de base de Numpy dans Jupyter Lab.
J'ai écrit un doctest dans "J'ai essayé de simuler la probabilité d'un jeu de bingo avec Python"
Un ensemble de fichiers de script qui font wordcloud avec Python3
Un script qui affiche la pile CloudFormation en cours d'exécution comme un mannequin
J'ai essayé de créer un script qui retrace les tweets d'un utilisateur spécifique sur Twitter et enregistre l'image publiée à la fois
J'ai créé un robot Line qui devine le sexe et l'âge d'une personne à partir de l'image
J'ai essayé l'analyse d'image du livre de score de tir à l'arc (un livret qui enregistre les résultats des coups). (Google Colaboratory)