WEBから画像を読み込む

WEBのURLから画像を読み込んで画素をポイントとして並べるPythonコード。

Pythonの画像処理ライブラリPillowを使って上の画像を読み込む。
Python SOPをつくり、以下のコードを書く。

node = hou.pwd()
geo = node.geometry()

import requests
import io
from PIL import Image

# 画像URL
url = 'https://technical-notes.com/houdini/wp-content/uploads/2024/06/sample_picture_03.jpg'
response = requests.get(url, timeout=100)

# カラーのアトリビュートをつくる
geo.addAttrib(hou.attribType.Point, "Cd", (0.0, 0.0, 0.0))

if response.status_code != 200:
    print("error")
else:
    img = Image.open(io.BytesIO(response.content))
    res = img.size
    
    # 画素をポイントを生成しながら並べていく
    for y in range(res[1]):
        for x in range(res[0]):
            c = img.getpixel((x, y))
            r = float(c[0]/255.0)
            g = float(c[1]/255.0)
            b = float(c[2]/255.0)
            
            pt = geo.createPoint()
            pt.setPosition((x,0,y))
            pt.setAttribValue("Cd", (r, g, b))

画素がそのままポイントとして並べられます。

タイトルとURLをコピーしました