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 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)
この記事は役に立ちましたか?
もし参考になりましたら、下記のボタンで教えてください。
コメント