Pythonのノウハウをメモ

Python環境構築

以下は、VSCodeでPythonの実行環境を構築する手順。

Pythonのインストール:

  1. コンピュータにPythonがインストールされていることを確認。インストールされていない場合は、Python公式ウェブサイト(https://www.python.org/downloads/)からダウンロードしてインストールする。

Visual Studio Codeのインストール:

  1. Visual Studio Codeがインストールされていない場合は、VSCode公式ウェブサイト(https://code.visualstudio.com/)からダウンロードしてインストールする。

Python拡張機能のインストール:

  1. VSCodeを起動し、左側のアクティビティバーにある拡張機能ボタン(四角形のアイコン)をクリックして、拡張機能タブを開く。
  2. 検索バーに「Python」と入力し、Microsoftが提供するPython拡張機能を見つけてインストールする。

Pythonインタープリターの選択:

  1. VSCodeでPythonファイル(.py)を開くか、新しくPythonファイルを作成。

仮想環境の作成(オプション):

  1. プロジェクトごとに独立したPython環境を作成するために、仮想環境(venvなど)を使用する。
  2. ターミナルを開いて、プロジェクトディレクトリに移動し、次のコマンドを実行して仮想環境を作成。
python -m venv myenv
  1. myenvは任意の仮想環境名
  2. 仮想環境を作成したら、VSCodeのターミナルで次のコマンドを実行して仮想環境をアクティベートする。

macOS/Linuxの場合:

source myenv/bin/activate

コードの実行:

  1. Pythonファイルを開いた状態で、右クリックメニューから「Run Python File in Terminal」を選択するか、「F5」キーを押してデバッグを開始することで、Pythonコードを実行できる。

以上が、Visual Studio CodeでPythonの実行環境を構築する手順。

Pythonを使って「DALL-E」で画像を自動生成し、さらに生成した画像を「tinypng」で圧縮し、ローカル環境の指定フォルダにダウンロードするソースコード

以下の作業を自動化する

  • 「DALL-E」で画像を自動生成する
  • 生成した画像を加工する(アスペクト比を変更)
  • 画像を「tinypng」で圧縮する
  • ローカル環境の指定フォルダにダウンロード

OpenAIのアカウントを作成する

APIキーを取得するためには、OpenAIのウェブサイトでアカウントを作成する。

APIキーを取得する

アカウントを作成したら、APIキーを取得する。

TinyPNGのウェブサイトでAPIキーを取得する

リンク先: https://tinypng.com/developers

必要なライブラリをインストールする

requestsライブラリ

pip install requests

openaiパッケージをインストール

pip install openai

画像処理ライブラリ

生成された画像のアスペクト比を変更し、ローカルにダウンロードするには、PIL(Python Imaging Library)と呼ばれるPythonの画像処理ライブラリを使用する。

pip install pillow

画像圧縮ライブラリ

ダウンロードした画像を画質を維持したままサイズを圧縮するには、Pythonのtinifyライブラリを使用する。

pip install tinify

コードを書く

import os
import requests
import openai
import tinify
from PIL import Image
from io import BytesIO

# OpenAI APIキーとTinyPNG APIキーを設定
openai.api_key = "XXXXXXXXXXXX"
tinify.key = "XxXXXXXXXXXXX"

# DALL-Eプロンプトの設定
prompt = "hogehogeohogeohgeo"

# 画像を生成
response = openai.Image.create(
    prompt=prompt,
    n=5,  # 画像の数
    size="1024x1024",
    model="image-alpha-001",
)
image_urls = [data["url"] for data in response["data"]]

# 画像をダウンロードしてリサイズする関数
def download_and_resize_image(url, aspect_ratio, save_path):
    response = requests.get(url)
    image = Image.open(BytesIO(response.content))

    width, height = image.size
    new_width = int(height * aspect_ratio)
    resized_image = image.resize((new_width, height), Image.ANTIALIAS)

    resized_image.save(save_path)
    print(f"Resized image saved at {save_path}")

# 画像を圧縮する関数
def compress_image(image_path, save_path):
    source = tinify.from_file(image_path)
    source.to_file(save_path)
    print(f"Compressed image saved at {save_path}")

# アスペクト比の指定
aspect_ratio = 3 / 2

# ダウンロードしてリサイズされた画像を保存するフォルダを作成
if not os.path.exists('resized_image'):
    os.makedirs('resized_image')

# 圧縮された画像を保存するフォルダを作成
if not os.path.exists('compressed_image'):
    os.makedirs('compressed_image')

for i, image_url in enumerate(image_urls):
    save_path = f"{ディレクトリを指定}/image_{i+1}.jpg"
    download_and_resize_image(image_url, aspect_ratio, save_path)

    # 圧縮
    compressed_save_path = f"{ディレクトリを指定}/image_{i+1}.jpg"
    compress_image(save_path, compressed_save_path)

カテゴリー: Python