Heim  >  Artikel  >  Backend-Entwicklung  >  Python Batch generiert Bilder beliebiger Größe

Python Batch generiert Bilder beliebiger Größe

高洛峰
高洛峰Original
2017-02-27 16:50:511923Durchsuche

Erzielen Sie den Effekt

Generieren Sie über die Quellbilder 1000 Bilder von 1*1 bis 1000*1000 Pixel im /img-Verzeichnis des aktuellen Arbeitsverzeichnisses.

Der Effekt ist wie folgt:

Python Batch generiert Bilder beliebiger Größe
Verzeichnisstruktur

Implementierungsbeispiel

# -*- coding: utf-8 -*-
import threading

from PIL import Image

image_size = range(1, 1001)


def start():
  for size in image_size:
    t = threading.Thread(target=create_image, args=(size,))
    t.start()


def create_image(size):
  pri_image = Image.open("origin.png")
  pri_image.resize((size, size), Image.ANTIALIAS).save("img/png_%d.png" % size)


if __name__ == "__main__":
  start()

Hinweis: Dieses Projekt muss auf die PIL-Bibliothek verweisen.

Hier verwenden wir die Funktion resize.

Wie die meisten Skriptbibliotheken unterstützen resize-Funktionen auch verkettete Aufrufe. Geben Sie zunächst die Größe und Qualität über resize((size, size), Image.ANTIALIAS) an, wobei für Parameter zwei gilt:

tbody>
参数值  含义
Image.NEAREST 低质量
Image.BILINEAR 双线性
Image.BICUBIC  三次样条插值
Image.ANTIALIAS 高质量
Parameterwert

save("img/png_%d.png" % size)Bedeutung
Image.NEAREST Geringe Qualität
Image.BILINEAR Bilinear
Image.BICUBIC Kubische Spline-Interpolation
Image.ANTIALIAS Hohe Qualität

Rufen Sie abschließend die Methode

auf, um im angegebenen Format an den angegebenen Speicherort zu schreiben.

Angesichts der Tatsache, dass es sich um eine große Anzahl linear intensiver Vorgänge handelt, wird außerdem Multithread-Parallelität verwendet.

Fazit

Das Obige dreht sich alles um die Verwendung von Python zur Stapelgenerierung von Bildern beliebiger Größe. Ich hoffe, dass es für alle hilfreich ist, es zu lernen und verwenden Sie Python.


Weitere Artikel zur Python-Batch-Generierung von Bildern beliebiger Größe finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn