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))
画素がそのままポイントとして並べられます。