Pythonのノウハウをメモ
Python環境構築
以下は、VSCodeでPythonの実行環境を構築する手順。
Pythonのインストール:
- コンピュータにPythonがインストールされていることを確認。インストールされていない場合は、Python公式ウェブサイト(https://www.python.org/downloads/)からダウンロードしてインストールする。
Visual Studio Codeのインストール:
- Visual Studio Codeがインストールされていない場合は、VSCode公式ウェブサイト(https://code.visualstudio.com/)からダウンロードしてインストールする。
Python拡張機能のインストール:
- VSCodeを起動し、左側のアクティビティバーにある拡張機能ボタン(四角形のアイコン)をクリックして、拡張機能タブを開く。
- 検索バーに「Python」と入力し、Microsoftが提供するPython拡張機能を見つけてインストールする。

Pythonインタープリターの選択:
- VSCodeでPythonファイル(.py)を開くか、新しくPythonファイルを作成。
仮想環境の作成(オプション):
- プロジェクトごとに独立したPython環境を作成するために、仮想環境(venvなど)を使用する。
- ターミナルを開いて、プロジェクトディレクトリに移動し、次のコマンドを実行して仮想環境を作成。
python -m venv myenv- myenvは任意の仮想環境名
- 仮想環境を作成したら、VSCodeのターミナルで次のコマンドを実行して仮想環境をアクティベートする。
macOS/Linuxの場合:
source myenv/bin/activateコードの実行:
- 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 requestsopenaiパッケージをインストール
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)





コメント