Convertir un fichier svg en png / ico avec Python

introduction

environnement

How to do it

Quand j'ai cherché légèrement sur Google, il y avait de nombreux exemples de conversion dans l'ordre svg-> png-> ico.

svg -> png

Il semble que vous puissiez convertir svg-> png en utilisant cairosvg.

Installation

$ pip install cairosvg

Il semble que le fichier d'exécution soit inclus, alors exécutez-le tel quel.

Et une erreur ...

$ cairosvg sample.svg -o sample.png
Traceback (most recent call last):
  File "/Users/tommarute/miniconda3/envs/py366/bin/cairosvg", line 6, in <module>
    from cairosvg.__main__ import main
  File "/Users/tommarute/miniconda3/envs/py366/lib/python3.6/site-packages/cairosvg/__init__.py", line 42, in <module>
    from . import surface  # noqa isort:skip
  File "/Users/tommarute/miniconda3/envs/py366/lib/python3.6/site-packages/cairosvg/surface.py", line 28, in <module>
    from .defs import (
  File "/Users/tommarute/miniconda3/envs/py366/lib/python3.6/site-packages/cairosvg/defs.py", line 24, in <module>
    from .bounding_box import calculate_bounding_box, is_non_empty_bounding_box
  File "/Users/tommarute/miniconda3/envs/py366/lib/python3.6/site-packages/cairosvg/bounding_box.py", line 26, in <module>
    from .features import match_features
  File "/Users/tommarute/miniconda3/envs/py366/lib/python3.6/site-packages/cairosvg/features.py", line 25, in <module>
    LOCALE = locale.getdefaultlocale()[0] or ''
  File "/Users/tommarute/miniconda3/envs/py366/lib/python3.6/locale.py", line 562, in getdefaultlocale
    return _parse_localename(localename)
  File "/Users/tommarute/miniconda3/envs/py366/lib/python3.6/locale.py", line 490, in _parse_localename
    raise ValueError('unknown locale: %s' % localename)
ValueError: unknown locale: UTF-8

D'une manière ou d'une autre, les paramètres régionaux semblent inconnus

Essayez de spécifier

$ LC_CTYPE="ja_JP.UTF-8" cairosvg sample.svg -o sample.png

J? ai compris.

$ ls -ltr
total 16
-rw-r--r--  1 tommarute  user   348 Nov 17 22:15 sample.svg
-rw-r--r--  1 tommarute  user  1473 Nov 17 22:16 sample.png

png -> ico

Il semble que png-> ico peut être utilisé avec oreiller.

Installation

$ pip install pillow

Il n'y a pas de fichier exécutable ici, alors utilisez-le comme bibliothèque.

In [1]: from PIL import Image

In [2]: fn = r'sample.png'

In [3]: img = Image.open(fn)

In [4]: img.save('favicon.ico')

In [5]:

J? ai compris.

$ ls -ltr
total 48
-rw-r--r--  1 tommarute  user    348 Nov 17 22:15 sample.svg
-rw-r--r--  1 tommarute  user   1473 Nov 17 22:16 sample.png
-rw-r--r--  1 tommarute  user  12993 Nov 17 22:20 favicon.ico

finalement

C'est un peu comme ça, alors faisons un script légèrement meilleur.

import sys
import os
os.environ['LC_CTYPE'] = "ja_JP.UTF-8"
import cairosvg
from PIL import Image


def run(svg, ico):
    print(f'svg = {svg}')
    print(f'ico = {ico}')
    png = f'{svg}.png'
    cairosvg.svg2png(url=svg, write_to=png)
    img = Image.open(png)
    img.save(ico)
    print('Deleting temporary png file.')
    os.unlink(png)
    print('svg2ico has finished normally.')

def main():
    args = sys.argv
    run(args[1], args[2])


if __name__ == '__main__':
    main()


La fin

référence

Recommended Posts

Convertir un fichier svg en png / ico avec Python
Convertir un fichier psd en png en Python
Convertir un PDF en image (JPEG / PNG) avec Python
Comment convertir un fichier JSON en fichier CSV avec Python Pandas
Sortie vers un fichier csv avec Python
Convertir la liste en DataFrame avec python
Jusqu'à ce que vous modifiiez le fichier SVG avec AutoCAD en PNG.
[Python] Comment convertir un fichier db en csv
Convertir un mémo à la fois avec Python 2to3
Comment convertir Python en fichier exe
[Python] Convertit les délimiteurs de fichier csv en délimiteurs de tabulation
Convertir des données Excel en JSON avec python
Convertir Hiragana en Romaji avec Python (bêta)
Convertissez des données FX 1 minute en données 5 minutes avec Python
Convertir des fichiers PDF en fichiers PNG avec GIMP
Convertir des nombres chinois en nombres arabes avec Python
Exemple de conversion en ondelettes d'images en Python
Activé pour convertir PNG en JPG avec Pillow of Python
Conversion DICOM en PNG avec ordre croissant et décroissant
Convertir 202003 en 2020-03 avec les pandas
Convertissez des PDF en images en masse avec Python
[Python] Conversion de DICOM en PNG ou CSV
Convertir les valeurs d'époque Windows à ce jour avec python
Lisez le fichier CSV avec Python et convertissez-le en DataFrame tel quel
Convertir le code de caractère du fichier avec Python3
Je veux écrire dans un fichier avec Python
Convertir une chaîne au format de liste caractère par caractère avec python
Comment convertir / restaurer une chaîne avec [] en python
Procédure pour charger MNIST avec python et sortie en png
Convertir un fichier texte avec des valeurs hexadécimales en fichier binaire
J'ai essayé de toucher un fichier CSV avec Python
Comment mesurer le temps de lecture d'un fichier mp3 avec python
Convertissez l'image au format .zip en PDF avec Python
Mémorandum PyInstaller Convertit Python [.py] en [.exe] avec 2 lignes
Connectez-vous à BigQuery avec Python
Convertir numpy int64 en python int
[Python] Convertir la liste en Pandas [Pandas]
Convertir le HTML en fichier texte
Dessiner un fichier netCDF avec python
Connectez-vous à Wikipedia avec Python
Publiez sur Slack avec Python 3
Convertir le projet Scratch en Python
[Python] Convertir Shift_JIS en UTF-8
Basculer python vers 2.7 avec des alternatives
Écrire en csv avec Python
Convertir le fichier genbank en fichier gff
Télécharger le fichier csv avec python
Convertir le code python 3.x en python 2.x
Comment convertir un tableau en dictionnaire avec Python [Application]
Convertir des images en sépia avec PIL (Python Imaging Library)
[Python Kivy] Comment créer un fichier exe avec pyinstaller
Convertir une vidéo en noir et blanc avec ffmpeg + python + opencv
Comment lire un fichier Excel (.xlsx) avec Pandas [Python]
Essayez de déchiffrer les caractères déformés dans le nom du fichier joint avec Python
Convertir un fichier Excel en texte en Python à des fins de comparaison
Convertir .ipynb en .html (avec BatchFile)
Lien pour commencer avec python